use*_*516 1 c++ arrays compiler-errors
使用此代码:
int myArray[10];
for(int i = 0; i < myArray.size(); i++)
cout << myArray[i] << endl;
Run Code Online (Sandbox Code Playgroud)
编译错误:
错误:在'myArray'中请求成员'size',这是非类型'int [10]'|
我必须遗漏一些明显的东西,但我没有看到它.
数组类型不是类类型,也没有成员函数.所以数组没有调用的成员函数size.但是,由于数组具有编译时固定大小,因此您知道大小为10:
for(int i = 0; i < 10; i++)
cout << myArray[i] << endl;
Run Code Online (Sandbox Code Playgroud)
当然,最好避免使用魔术数字,并将大小放在某处的命名常量中.或者,有一个标准库函数用于确定数组类型对象的长度:
for(int i = 0; i < std::extent(myArray); i++)
cout << myArray[i] << endl;
Run Code Online (Sandbox Code Playgroud)
但是,您可以使用std::array它来封装数组类型对象,并提供size成员函数:
std::array<int, 10> myArray;
for(int i = 0; i < myArray.size(); i++)
cout << myArray[i] << endl;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
934 次 |
| 最近记录: |