編輯:不能使用矢量如何使用intitializer列表?
所以現在我正在練習類和頭。我需要做的事情之一是創建一個構造函數,可以使用初始化程序列表初始化2D數組。
我已經使用這個網站,試圖找出如何做到這一點:http://en.cppreference.com/w/cpp/utility/initializer_list
但它並沒有真正幫助我。
到目前爲止,我有構造函數的原型,隨着包括,爲intitializer列表中的typedef:
#include <initializer_list>
typedef initializer_list<initializer_list<double>> i_list;
Matrix::Matrix(const i_list & list)
{}
我需要能夠做這樣的事情x = {{1,2},{2,4}}
,這應該使我創造我的矩陣--x ---不必調用我的.at函數。
編輯:
我試着執行以下代碼,但遺憾的是它並導致錯誤。
Matrix::Matrix(const i_list & list)
{
lst.size(list.size());
for (auto const& row: list)
{
(lst.begin(row),lst.end(row));
}
}
lst在我的頭文件中定義爲:I_list lst。 I_list,因爲它是一個簡寫。
我認爲這類型定義是一個壞主意,因爲它掩蓋了事實的說法是'的std :: initializer_list'因爲'的std :: initializer_list'有引用語義不是價值語義,隱藏你使用它並不是一個好主意。另外,你在類型上缺少'std ::'。 –