您已经只推动了矢量itemsets
中的一个元素。
所以你只能访问:itemsets [0]。它给你的第一个元素就是你推送的矢量(我们称之为vector1
)。
通过执行:
itemsets[0].push_back(1);
itemsets[0].push_back(2);
你把两个元素vector1
。
如果我们把它表示一个表它看起来像:
col1 col2
row1 1 2
您可以访问元素vector1
使用[] [],其中第一个索引是行,第二个是一列:
cout<<itemsets[0][0]<<itemsets[0][1];
编辑:
如果你想添加你需要添加vector2
到itemsets
两行:
itemsets.push_back(vector<int>()); //vector1
itemsets.push_back(vector<int>()); //vector2
itemsets[0].push_back(1);
itemsets[1].push_back(2);
cout<<itemsets[0][0]<<itemsets[1][0];
return 0;
您也可以使用std::vector
构造从int
:
itemsets.push_back(vector<int>(1, 1)); //vector1 push 1 (first parameter is size of vector)
itemsets.push_back(vector<int>(1, 2)); //vector2 push 2
而且在C++ 11你可以添加更多的一个值一次:
在C++ 11
itemsets.push_back(std::vector<int>({1, 2})); //vector1
itemsets.push_back(std::vector<int>({3, 4})); //vector2
std::cout<<itemsets[0][0]<<itemsets[0][1]<<itemsets[1][0]<<itemsets[1][1];
你也可以在一行内初始化向量:
vector<vector<int> >itemsets = {{1}, {2}}; //add two rows: row1: 1, and row2: 2.
'正在运行时错误。 – 2014-09-22 09:10:50
@Thomas它应该打印1和2.但它没有打印任何东西,我得到错误,Windows已停止工作(我使用代码块) – 2014-09-22 09:13:53