我知道如何初始化向量1D這樣如何在C++中使用構造函數初始化2D矢量?
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矢量?
我知道如何初始化向量1D這樣如何在C++中使用構造函數初始化2D矢量?
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矢量?
在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}
};
需要了解更多信息的內容包括initializer_lists和C++ 11中的統一初始化。 – YoungJohn
爲什麼不只是'std :: vector
@juanchopanza AAA人羣再次襲擊...... –
在當前的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。
如果您事先不知道這些值,您仍然可以使用初始值初始化2D向量。
vector< vector <int> > arr(10, vector <int> (10, 0));
上述代碼將初始化10X10的二維矢量,其索引值爲零(0)。
請記住,矢量在內存中是連續的 –
@ Jarod42您不應該在問題中編輯OP的代碼。 – herohuyongtao
@herohuyongtao:'float yy = {{..}}'是無效的。而我的編輯不會使發佈的答案無效。 – Jarod42