向量数组

时间:2016-12-18 09:29:32

标签: c++ arrays vector

我尝试创建一个向量数组,我真的需要一个向量的ARRAY(不是向量的向量),因为向量在数组中的位置很重要。问题是,我在开始时不知道数组的大小我在调用类构造函数时从文件中读取它,所以我认为我应该使用" new"操作

std::vector<Vertex>* excess_vec ;
excess_vec = new std::vector<Vertex>[2*num_of_nodes];

其中Vertex是一个结构, 但在

中填充一组向量
for (int i = 0; i<vertices.size(); i++) {

        excess_vec[0].push_back(vertices[i]);
        excess_vec[3].push_back(vertices[i]);


}

这样,顶点是Vertex的向量 在Xcode中调试时得到这个结果

enter image description here

看起来它只是一个向量而不是向量数组,我希望这样的东西:

    [0]
      [0]
      [1]
      .
      .
      .

   [1]
   [2]
   [3]
     [0]
     [1]
     [2]
     .
     .
     .

所以,我对此有点困惑。在此先感谢)

1 个答案:

答案 0 :(得分:0)

如果你想从一个文件中读取大小的矢量,你必须这样做:

int size;
in>>size;
vector<A>[size] vector_array;

我不确定你想要什么。如果您想从文件中读取它的值,您可以执行以下操作:

for(int i = 0;i<array.size();i++){
   //get data from file and convert it to the object you want
   vector_array[i] = generated_object;
}

如果要将矢量从数组复制到另一个矢量数组,可以使用:

for(int i = 0;i<size_of_array_to_copy;i++){
    vector_array[i] = array_to_copy[i];
}    

是的,它看起来像一棵树,矢量矢量看起来像一棵树。 您在类构造函数中或将来调用它的事实并不会改变任何事情。你使用结构并不重要,结构和类是相似的。 你应该只使用向量,它们只是具有动态大小的数组。