出现错误
C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/bits/stl_algobase.h:704:11: error: no match for 'operator=' (operand types are 'std::array<int, 3ull>' and 'const int')
*__first = __tmp;
^
C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/bits/stl_algobase.h:704:11: note: candidates are:
In file included from 1.cpp:3:0:
C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/array:81:12: note: std::array<int, 3ull>& std::array<int, 3ull>::operator=(const std::array<int, 3ull>&)
分析原因
对于array
对象,不能直接使用fill
函数将每个元素初始化为特定的值。fill
函数适用于标准数组和容器,但不适用于array
。
同类相似原因
使用了不匹配的两个因素
例如:
定义了一个数据类型string,但是使用了一个只适用于字符数组char s[100]的操作函数。
定义了array对象,使用了一个不适用于array对象的函数。
解决问题
找到自己所定义的数据类型适用的函数,或操作方法即可。