在std ::陣列 即時編譯該代碼的std ::陣列C++ 11初始化語法錯誤
#include <iostream>
#include <array>
using namespace std;
int main(int argc, char const *argv[])
{
array<int, 5> myarr;
myarr = {1,5,2,3,4};
for(auto i : myarr)
{
cout << i << endl;
}
return 0;
}
但它編譯時,當我做到這一點上得到
no match for ‘operator=’ in ‘myarr = {1, 5, 2, 3, 4}’
錯誤同一行
array<int, 5> myarr = {1,5,2,3,4};
如何在seprate行賦值
我需要在類構造函數中分配值我該怎麼做?
class myclass
{
myclass()
{
myarr = {1,2,3,4,5}; /// how to assign it // it gives errors
}
};
下面的答案適用於您確實需要在施工後分配數組,但實際上很少需要。對於構造函數,您可以並應該使用初始化列表而不是賦值,如C++常見問題解答中所述:http://www.parashift.com/c++-faq/init-lists.html。 – 2012-08-16 18:20:10