我需要一些大小未知的数据结构来支持以下内容:
按索引推送数据。也就是说,每个项目将由两部分组成:一个索引(可能不是连续的。即 1,3,7...),以及其他称为
data
的东西:struct data { float par[PARAMETERS]; int cluster; bool visited; bool noise; };
所以数据推送看起来像这样:
data d; //some work on d... temp.i = 2; temp.data = d; vec.pushback(temp);
索引的可访问性。也就是说, vector 名为
vec
,那么我希望能够通过vec[i]
访问它。例如:vec[i].visited = true;
编辑(另一个特征):
- 我还需要为每个索引插入多个数据。我的意思是,如果我插入一些索引和数据并且索引已经存在,那么我希望它只将数据附加到该索引。
我想到了一个由 int 和 data 组成的 vector :
typedef std::vector<int,data> Vec;
但这不支持通过int
索引访问Vec
。
第二个想法是 map vector :
typedef std::vector<std::map<int,data>> Vec;
但这也不支持按索引访问。
最佳答案
为什么不只使用法线贴图?
例如,typedef std::map<int,data> myMap;
.
我认为没有比这更奇特的东西了。
关于c++ - 什么是用于索引访问的良好未定义大小数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23784088/