C ++ Tridimensional Vector?

时间:2015-06-26 21:38:02

标签: c++ vector

我有一个搜索某些数据的函数并返回一个向量:

vector<int> findMyData(int byID)
{
  vector<int> tempVect;
  // do some search...
  for ( each data found )
    tempVect.push_back( the data );

  return tempVect;
}

现在我必须重复搜索x行和y列,所以我最终得到了一个二维矢量数组。如果我说它很可能是一个三维向量,我是否正确?

示例:

vector<vector<vector<int>>> myDatabase;

第一个索引应该是行,第二个索引应该是列,x / y点包含的数据是我的函数返回的向量,所以第三个索引是I&#39; ll读取的数字。故事结束......

那么,我该如何填充数据库?

for (int x=0; x<100; ++x)
  for (int y=0; y<50; ++y)
    myDatabase .... <-- what's the correct syntax to fill this vector?

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,答案是:

myDatabase[x][y]

这也可以扩展到更多维度:

myDatabase[x][y][z][w][a][b][c]...

答案 1 :(得分:0)

您可以这样做:

std::vector<std::vector<std::vector<int>>> myDatabase(100, std::vector<std::vector<int>>(50));

for (int x=0; x<100; ++x) {
  for (int y=0; y<50; ++y) {
    myDatabase[x][y] = findMyData(getId(x, y));
  }
}