【发布时间】:2019-10-16 09:34:11
【问题描述】:
我有以下构造。
一个数组arr:
std::array<double, 2> val;
我通过push_back()将它放入向量中
std::vector<std::array<double, 2>> innerVec;
for(int i=0; i<number1; i++){
innerVec.push_back(val);
}
再一次,我把这个内部向量放到了一个外部向量中:
std::vector<std::vector<std::array<double, 2>>> outerVec;
for(int i=0; i<number2; i++){
outerVec.push_back(innerVec);
}
问题是,我怎样才能得到innerVec 的大小(实际上是number1)?
与
outerVec[0].size();
它返回2*number1,这可能是因为val 有2 个条目,而size() 返回内部向量中的元素数。
【问题讨论】:
-
我不相信你。发布minimal reproducible example。
-
仅考虑您显示/暗示的代码,
outerVec[0].size()应该返回number1。否则,您的程序中有错误(我们只能在您展示程序时帮助您找到)。也许你在推回之前调整了大小?