c++ - 什么是用于索引访问的良好未定义大小数据结构?

标签 c++ containers std

我需要一些大小未知的数据结构来支持以下内容:

  • 按索引推送数据。也就是说,每个项目将由两部分组成:一个索引(可能不是连续的。即 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/

相关文章:

c++ - @符号在c++中起什么作用?

java - 在JAVA中添加工具栏到GUI

docker - 当Kubernetes Pod的限制重叠时,为什么Pod会随机失败?

c++ - 为什么 std::string 没有虚拟析构函数?

c++ - 在 C 或 C++ 中同时在同一个套接字上读写

c++ - GLSL 语法错误 : "in" parse error

c++ - 将 dnorm 与 RcppArmadillo 结合使用

arrays - Swift Array 如何支持有效的 Element 子类型分配?

c++ - 将一元函数应用于 vector 的某些元素的良好实现是什么?

c++ - Cuda 基本程序(将值写入矩阵和 std :cout does not work) ; Main function does not start