我知道如何像这样初始化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矢量?
答案 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)。