错误:请求"数据"中的成员"大小",其非类类型为"int [5]"
error: request for member 'size' in 'data', which is of non-class type 'int [5]'
#include <iostream>
using namespace std;
int main(){
int data[] = {3,6,7,8,9};
for(int i = 0; i < data.size(); i++){
data[i] = i * i;
}
for (int i=0; i<data.size(); i++){
cout << data[i] <<endl;
}
}
您好,我正在使用我的C++程序练习数组操作。但是我收到错误消息,我无法弄清楚原因:
错误:请求"数据"中的成员"大小",其非类类型为"int [5]">
所以任何人都可以帮助澄清这一点?谢谢。
您使用的是普通的旧数组,它没有任何函数。
您应该切换到 std::array
或 std::vector
,您可以在其中使用成员函数size()
:
std::array<int, 5> data = { 3, 6, 7, 8, 9};
std::vector<int> data = { 3, 6, 7, 8, 9};
您需要分别#include <array>
或#include <vector>
。
感谢评论中的@Galik,如果您使用的是 C++17 或更高版本,您还可以使用适用于数组的std::size
,以及 vector
和 array
等 std 容器:
int data[] = {3,6,7,8,9};
for(int i = 0; i < std::size(data); i++)
或者,当您不需要索引时,您可以在当前数组上使用 for ranged 循环,例如打印它时:
int data[] = {3,6,7,8,9};
for (auto i : data)
std::cout << i << " ";
打印3 6 7 8 9
相关文章:
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 多维数组 C++ 中数组下标的类型"int[int]"无效
- 指针问题:从不兼容的类型"int"分配给"int *"
- 数组类型 int[n][n] 不可赋值,因为表达式必须具有常量值
- 错误:数组下标的类型"int[int]"无效
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 类型为 "int*" 的参数与 C++ 中错误类型"int**"参数不兼容
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- for 循环说 - 错误 成员引用基类型"int [13]"不是结构或联合
- 运行时错误:有符号整数溢出:964632435 * 10 无法在类型 'int' 中表示
- 如何增加模板类型 int 参数?
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 如何为底层类型 int 的枚举专门化类
- 数组下标编译的无效类型'int[int]'由于 -Wfatal 错误而终止
- 不能将 "const char*" 类型的值分配给类型 "int" 的实体
- 数组下标的无效类型INT [INT]
- 请求在"伺服控制器"中请求成员"附加",该成员属于非类类型"int"
- 数组类型 'int [8]'不可分配
- 未声明的标识符和类型"int"从 main 调用类时出现意外错误