【问题标题】:how to define two dimensional vector which element is vector of variable size?如何定义二维向量哪个元素是可变大小的向量?
【发布时间】:2018-05-24 04:06:37
【问题描述】:

我想定义一个 20 行 4 列的向量,它的元素是像这样大小可变的向量

result={ 
   {1,2,3},{5,4},{1},{10,15,16}
   {5},{1,2},{1,2,3},{1,4,5,6}
    ...

}

结果一开始是空的... 我的代码的某些部分写在下面,如果条件为真,则“结果”更新

for(int i=0;i<20;i++){

    hash_1=hash_images[i];

    for(int j=i+1;j<20;j++){

        hash_2=hash_images[j];
        dis=hammingDist(hash_1.c_str(),hash_2.c_str());

        for(int t=0;t<4;t++){

            if (dis<=t){
                  ? result[i][t].push_back(somthing);   
            }
        } 
    }
}

【问题讨论】:

  • 你目前的代码有什么问题?
  • std::vector<:vector>> vec = { {1, 2, 3}, {2, 3}, {2, 7, 9} };会工作
  • 我想将项目附加到向量,但这个 dosnt 工作......代码末尾的结果应该是这样的

标签: c++ vector dimensional


【解决方案1】:

定义一个3维向量如下:

vector<vector<vector<sth>>> S;
S.resize(20);
for (i=0 to 19)
   S[i].resize(4);

然后在您的主循环中,您可以在计算后为每个值调整第三维度的大小:

for(j=0 to 19)
   for(m=0 to 3){
      //your calculation
      k=S[j][m].size();
      S[j][m].resize(k+1);
      S[j][m][k]=value;
   }

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2017-05-10
    • 2020-04-01
    • 2020-08-17
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多