如何在多维数组/网格c ++中创建List

问题描述 投票:0回答:1

我的计划遇到了绊脚石。我用c ++编程并使用OpenGL进行图形处理。我期待用网格划分空间(用2D数组表示 - 网格[行] [cols])。网格将在每个索引处具有“单元格”。

在该网格内和每个INDEX位置,即grid [0] [0],我希望在移动到每个网格单元中时收集对象ID(int值)的列表。索引位置grid [0] [0]中的列表应该与屏幕上的移动对象实时/动态地更新。

我想检索对象ID,因为它们填充列表以便稍后进行冲突检查。

视觉上它应该如下:

网格阵列

+ [0] [0] - >列表[]

+ [0] [1] - >列表[]

+ [0] [2] - >列表[]

+ [0] [3] - >列表[]

+ [1] [0] - >列表[]

+ [1] [1] - >列表[] ......依此类推

有没有办法在C ++中执行此操作? Java似乎能够在我需要的数组点中创建新的数组......必须有办法吗?

哈希表,链接列表到目前为止......但如果它们是我需要知道的,请告诉我,我会更详细地研究它们......非常感谢提前。

c++ arrays list multidimensional-array grid-search
1个回答
0
投票

试试这样:

#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;
}
© www.soinside.com 2019 - 2024. All rights reserved.