如何在c ++中使用构造函数初始化2d向量?

时间:2014-02-13 15:14:13

标签: c++ vector

我知道如何像这样初始化1d矢量

int myints[] = {16,2,77,29};
std::vector<int> fifth(myints, myints + sizeof(myints) / sizeof(int));

假设我有2d数据。

float yy[][2] = {{20.0, 20.0}, {80.0, 80.0}, {20.0, 80.0}, {80.0, 20.0}};

如何初始化2d矢量?

3 个答案:

答案 0 :(得分:6)

在当前的C ++中(自2011年起),您可以在构造函数中初始化此类向量:

vector<vector<float>> yy
{
    {20.0, 20.0},
    {80.0, 80.0},
    {20.0, 80.0},
    {80.0, 20.0}
};

看到它活着:http://ideone.com/GJQ5IU

答案 1 :(得分:3)

在C ++ 11中,您可以初始化这样的矢量矢量:

auto yy = std::vector<std::vector<float>>
{
    {20.0, 20.0},
    {80.0, 80.0},
    {20.0, 80.0},
    {80.0, 20.0}
};

答案 2 :(得分:1)

如果您事先不知道这些值仍然可以初始化具有初始值的2D矢量。

vector< vector <int> > arr(10, vector <int> (10, 0));

以上代码将初始化10X10的2D矢量,所有索引值均为零(0)。