如何在多维数组/网格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的主要内容,如果未能解决你的问题,请参考以下文章