[英]Error: could not convert '<brace-enclosed initializer list>()' from '<brace-enclosed initializer list>' to 'struct'
[英]Could not convert from brace-enclosed initializer list
我正在嘗試編譯下面的代碼,但我一直遇到錯誤could not convert '{{1, 2}, {5, 6}}' from '<brace-enclosed initializer list>' to 'Class1'
。 我正在編譯-std=c++11
的代碼。 我的初始化錯誤嗎?
class Class1
{
public:
vector<vector<int> > a;
Class1(vector<vector<int> > p)
{
for(int i = 0; i < 2; i++)
for(int j = 0; j < 2; j++)
a[i][j] = p[i][j];
}
};
int main()
{
Class1 ClassValue = {{ 1, 2, },{ 5, 6 } };
return 0;
}
首先,將您的線路更改為:
Class1 ClassValue ({{ 1, 2 },{ 5, 6 } });
第二件事是您的構造函數無效,因為您寫入不存在的內存。 相反,使用:
Class1(vector<vector<int> > p):a(p){}
評論后編輯:這個會更好(更快),因為你不會第二次復制。
Class1(vector<vector<int> > p):a(move(p)){}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.