如果我像这样创建矢量矢量:
std::vector<std::vector<int>> myVectorOfVectors;
然后用一些东西填充它:
std::vector<int> myVector1;
myVector1.push_back(1);
myVector1.push_back(2);
myVector1.push_back(3);
myVector1.push_back(4);
myVectorOfVectors.push_back(myVector1);
std::vector<int> myVector2;
myVector2.push_back(1);
myVector2.push_back(2);
myVector2.push_back(3);
myVector2.push_back(4);
myVectorOfVectors.push_back(myVector2);
std::vector<int> myVector3;
myVector3.push_back(1);
myVector3.push_back(2);
myVector3.push_back(3);
myVector3.push_back(4);
myVectorOfVectors.push_back(myVector3);
如何将myVectorOfVectors的任何给定元素分配给变量而不复制它?例如,我非常确定以下内容将复制位于索引N的向量:
std::vector<int> myVector = myVectorOfVectors[N];
有没有办法在索引N处获取指向对象的指针,而不是在索引N处获取对象的副本?我该怎么做?
答案 0 :(得分:3)
使用参考。
std::vector<int>& myVector = myVectorOfVectors[N];
答案 1 :(得分:1)
使用auto&
,您不必重复此类型:
auto& myVector = myVectorOfVectors[N];
注意:需要c ++ 11。