如何在多维数组/网格 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;
}