如何在多维数组/网格 C++ 中创建列表
How do I create a List within a multi-dimensional array / grid c++
我遇到了程序中的绊脚石。我正在用 C++ 编程并使用 OpenGL 进行图形处理。我希望用网格(用二维数组表示 - 网格[行][列])对 space 进行分区。网格将在每个索引处有 'cells'。
在此网格内和每个 INDEX 位置,即网格 [0][0],我希望在对象 ID(整数值)移入每个网格单元格时收集它们的列表。索引位置 grid[0][0] 的列表应该随着屏幕上移动的对象实时/动态更新。
我想检索对象 ID,因为它们会填充列表以供稍后进行碰撞检查。
作为视觉效果应该如下:
网格数组
+[0][0] --> 列表[]
+[0][1] --> 列表[]
+[0][2] --> 列表[]
+[0][3] --> 列表[]
+[1][0] --> 列表[]
+[1][1] --> 列表[]
...等等
有没有办法在 C++ 中做到这一点? Java 似乎可以根据需要在阵列点内创建新阵列...一定有办法吗?
哈希表、链表让我难以理解……但如果它们是我需要知道的,请告诉我,我会更详细地研究它们……
提前谢谢了。
这样试试:
#include <iostream>
#include <vector>
#include <list>
using namespace std;
// some data
struct DATA
{
int x;
};
int main()
{
vector<vector<list<DATA>>> matrix_of_lists;
matrix_of_lists.resize(2);
matrix_of_lists[0].resize(2);
matrix_of_lists[1].resize(2);
DATA d;
d.x = 1;
matrix_of_lists[0][0].push_back(d);
cout << matrix_of_lists[0][0].front().x;
}
我遇到了程序中的绊脚石。我正在用 C++ 编程并使用 OpenGL 进行图形处理。我希望用网格(用二维数组表示 - 网格[行][列])对 space 进行分区。网格将在每个索引处有 'cells'。
在此网格内和每个 INDEX 位置,即网格 [0][0],我希望在对象 ID(整数值)移入每个网格单元格时收集它们的列表。索引位置 grid[0][0] 的列表应该随着屏幕上移动的对象实时/动态更新。
我想检索对象 ID,因为它们会填充列表以供稍后进行碰撞检查。
作为视觉效果应该如下:
网格数组
+[0][0] --> 列表[]
+[0][1] --> 列表[]
+[0][2] --> 列表[]
+[0][3] --> 列表[]
+[1][0] --> 列表[]
+[1][1] --> 列表[] ...等等
有没有办法在 C++ 中做到这一点? Java 似乎可以根据需要在阵列点内创建新阵列...一定有办法吗?
哈希表、链表让我难以理解……但如果它们是我需要知道的,请告诉我,我会更详细地研究它们…… 提前谢谢了。
这样试试:
#include <iostream>
#include <vector>
#include <list>
using namespace std;
// some data
struct DATA
{
int x;
};
int main()
{
vector<vector<list<DATA>>> matrix_of_lists;
matrix_of_lists.resize(2);
matrix_of_lists[0].resize(2);
matrix_of_lists[1].resize(2);
DATA d;
d.x = 1;
matrix_of_lists[0][0].push_back(d);
cout << matrix_of_lists[0][0].front().x;
}