Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 使用C+中的初始化列表初始化2D向量+;11_C++11_Stdvector - Fatal编程技术网

C++11 使用C+中的初始化列表初始化2D向量+;11

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,

如何使用初始化列表初始化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,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;
}