C++11 使用C+中的初始化列表初始化2D向量+;11
如何使用初始化列表初始化2D向量? 对于法向量,执行以下操作:C++11 使用C+中的初始化列表初始化2D向量+;11,c++11,stdvector,C++11,Stdvector,如何使用初始化列表初始化2D向量? 对于法向量,执行以下操作: vector<int> myvect {1,2,3,4}; 向量myvect{1,2,3,4}; 就够了。但对于2D,则需要执行以下操作: vector<vector<int>> myvect{ {10,20,30,40}, {50,60,70,80} }; 向量myvect{{10,
vector<int> myvect {1,2,3,4};
向量myvect{1,2,3,4};
就够了。但对于2D,则需要执行以下操作:
vector<vector<int>> myvect{ {10,20,30,40},
{50,60,70,80}
};
向量myvect{{10,20,30,40},
{50,60,70,80}
};
正确的做法是什么?我如何使用for遍历它
for(auto x: myvect)
{
cout<<x[j++]<<endl;
}
for(自动x:myvect)
{
库特
正确的做法是什么
您展示的方式是一种可能的方式。您还可以使用:
vector<vector<int>> myvect = { {10,20,30,40},
{50,60,70,80} };
vector<vector<int>> myvect{ vector<int>{10,20,30,40},
vector<int>{50,60,70,80} };
我没有使用auto
来显式显示结果类型
顺便问一下,这是什么意思
这可能是一个输入错误。目前来看,它是非法的。声明vector myvect[5];
声明了一个由5个vector
组成的数组。因此,下面的列表初始化需要初始化数组,但此列表的元素不能隐式转换为vector
(有一个接受大小的ctor,但它是显式的)
已经指出了这一点
我猜作者想写的是std::vector vArray={3,2,7,5,8};
可能是@特洛伊木马的复制品。第一个问题的答案在array
(一个POD)和vector
(不是POD)之间是不同的。第二个和第三个问题也没有包含在这个答案中。非常感谢:)这真的很有帮助,特别是你使用的解释类型,而不是自动,它使事情变得更清楚:)
vector<vector<int>> myvect = { {10,20,30,40},
{50,60,70,80} };
vector<vector<int>> myvect{ vector<int>{10,20,30,40},
vector<int>{50,60,70,80} };
for(vector<int> const& innerVec : myvect)
{
for(int element : innerVec)
{
cout << element << ',';
}
cout << endl;
}