动态分配数组

par*_*rth 1 c++

我正在开发一个OpenGL/C++程序,我需要在我的窗口中绘制坐标时存储坐标.但由于绘制的点数未定义,我无法确定数组的大小.是否可以动态地为数组分配空间?我可以使用任何其他数据结构来实现相同的目标吗?

Luc*_*ore 6

是的,请std::vector改用.

结合push_back你可以动态增加元素的数量.

std::vector<Coordinate> coordinates;
coordinates.push_back(Coordinate(0,0));
coordinates.push_back(Coordinate(1,1));
Run Code Online (Sandbox Code Playgroud)

您可以像访问数组一样访问元素:

coordinates[0], coordinates[1]...
Run Code Online (Sandbox Code Playgroud)

  • 如果连续内存不是您的要求,也可以考虑使用`std :: deque`,因为它没有在空间不足时重新分配所有内存. (2认同)