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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在多维数组/网格c ++中创建List相关的知识,希望对你有一定的参考价值。

我的计划遇到了绊脚石。我用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似乎能够在我需要的数组点中创建新的数组......必须有办法吗?

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

答案

试试这样:

#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 ++中创建List的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们不能在c中创建一个带有常量的数组[重复]

如何在 Laravel/PHP 中创建多维数组

如何使用 numpy 数组在搅拌机中生成网格数组?

在 MATLAB Coder 中创建用于指定数组大小的常量

在C中创建一个没有重复的新数组

如何在 C 中创建指向整个字符串的指针?