2016-11-10 155 views
1

我有下面的代码,我正在努力为矢量添加值。最终目标是通过列表进行迭代,并且每次迭代都会向矢量的2行添加值,但我正在努力理解如何push_back到2d矢量。2D矢量push_back

std::vector<std::vector<int> >nns; 
int i = 5; 
nns.push_back(i, i); 
for(int i = 0; i <nns.size(); i++) 
{ 
    for(int j = 0; j < nns[i].size(); j++) 
    { 
     std::cout << nns[i][j] << std::endl; 
    } 
} 

如何添加一列到这个向量? so vector [0] [0] = 0 vector [1] [0] = 0?

+1

'nns.push_back(std :: vector {i});'?工作示例:[这里](https://ideone.com/DgSEkz)。除此之外,在标准C++中,不存在像_2D Vector_这样的概念。你这里有什么是矢量矢量,你应该这样对待它。 –

+0

完美!非常感谢你 – loxol

回答

1

回答提供方:Algirdas完美地工作。

#include <iostream> 
#include <vector> 
using namespace std; 

int main() { 
    std::vector<std::vector<int> > nns; 
    int i = 5; 
    nns.push_back(std::vector<int>{i}); 
    for (int i = 0; i < nns.size(); i++) { 
    for (int j = 0; j < nns[i].size(); j++) { 
     std::cout << nns[i][j] << std::endl; 
    } 
    } 
}