БППП :: массив им получитьстанд :: массив ошибок C++ 11 инициализатора синтаксис
no match for ‘operator=’ in ‘myarr = {1, 5, 2, 3, 4}’
ошибку при компиляции этого кода
#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;
}
но компилирует, когда я это сделать на та же линия
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
}
};
Ответы ниже работают, когда вам действительно нужно назначить массив после постройки, но это на самом деле редко необходимо. Для конструкторов вы можете и должны использовать список инициализации вместо назначения, как указано в FAQ по C++ на http://www.parashift.com/c++-faq/init-lists.html. –