是否可以在数组元素 a[0],a[1]... 中放置一个向量(每个 a[x] 中的向量不同)?如果可能的话,我如何访问给定 a[n] 中向量的一个元素?
问问题
795 次
3 回答
2
您拥有的一些可能性:
// Static array of vectors (not a good practice though)
std::vector<int> vec_array1[size];
// Or dynamic array of vectors (still not very c++ish and error prone)
std::vector<int> *vec_array2;
vec_array = new std::vector<int>[size];
// Or vector of vectors
std::vector<std::vector<int> > vec_array3(size);
// Or std::array of vectors (in c++11)
std::array<std::vector<int>, size> *vec_array4;
在任何情况下,您都可以使用运算符访问向量[]
:
vec_array[0].push_back(5);
以及使用两个运算符的元素,[]
例如:
vec_array[0][2] = 4;
于 2012-10-28T22:37:37.850 回答
1
是的你可以。这是一个如何做到这一点的例子。
std::array<std::vector<int>, n> array_of_vector;
//add to vector in array
array_of_vector[0].push_back(4);
//access element in vector in array
array_of_vector[0][0]=5;
于 2012-10-28T22:31:01.463 回答
1
你可以做类似的事情
std::vector< std::vector < type > > a;
所以,a[i]
是std::vector
你需要的。
于 2012-10-28T22:31:29.293 回答