我需要一些支持以下内容的未知大小的数据结构:
按索引推送数据。也就是说,每个项目都包含两件事:一个索引(可能不是连续的。即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);
索引可访问性。也就是说,向量名为vec
,然后我希望能够通过vec[i]
访问它。例如:
vec[i].visited = true;
编辑(其他功能):
我想到了int和data的向量:
typedef std::vector<int,data> Vec;
但这并不支持Vec
索引访问int
。
第二个想法是地图矢量:
typedef std::vector<std::map<int,data>> Vec;
但这也不支持索引访问。
答案 0 :(得分:2)
为什么不只使用普通地图?
例如,typedef std::map<int,data> myMap;
。
我认为不需要比这更漂亮的东西。
答案 1 :(得分:0)
哈希映射怎么样? data
将是您的结构的名称。每个索引都将映射到data
的唯一实例。
std::hash_map<int, data>