Учитывая, что у вас есть массив из двух двойных чисел, я не сомневаюсь, что есть необходимость увеличить это число в какое-то время. Мол, если в какой-то момент вы тоже решите добавить 3d-функции. Я бы поэтому предпочел остаться с массивом. Но нет необходимости использовать динамический массив. Используйте массив, завернутый в структуру, такую как boost::array
:
boost::array<double, 2> QSweep::computeIntersection(
double m1, double b1, double m2, double b2
) {
boost::array<double, 2> array = { (b2-b1)/(m1-m2), (m1*b2-m2*b1)/(m1-m2) };
return array;
}
Затем вы можете добавить его к вектору, который будет содержать:
typedef std::vector< boost::array<double, 2> > vec_of_2darray_t;
vec_of_2darray_t v;
v.push_back(computeIntersection(a, b, c, d));
// ...
Это, вероятно, лучшее, что вы можете получить, если стремитесь к простоте и расширяемости. boost::array
- довольно маленькая и простая структура. Это в основном составляет
template<typename T, size_t N>
struct array { T data[N]; };
И, конечно, несколько функций, таких как operator[]
, begin()
, end()
и другие. Но без конструкторов, чтобы вы могли инициализировать его как обычный массив, как мы делали выше.