2D как в многомерном массиве или две координаты?Если многомерный, используйте вектор векторов:
vector<vector<type>> v;
В этом случае я не уверен, что вы подразумеваете под x и y.И используйте оператор [] вместо оператора (): v[1] = x
и т. Д.
Если бы две координаты (ось x, ось y), я сделал бы что-то вроде этого:
template <class T>
class Vector2
{
public:
Vector2(const T& x, const T& y) : mX(x), mY(y) {}
private:
T x;
T y;
};
Причина, по которой я склонен создавать собственный класс Vector2, а не использовать существующий std :: vector, заключается в том, что вы избавляетесь от тонны накладных расходов, которые вы бы не использовали, если все, что вы храните, - это два значения.Это включает в себя динамическое выделение памяти, сохранение длины массива и т. Д. Вам не нужно все это, если все, что вы делаете - это сохранение двух значений.