为什么我遇到这个错误:请求成员“尺寸”在“arr”中,它是非类类型“int [n]”; for(int j=arr.size()-1; j>=0; j--){
我面临一个错误:
请求arr中非类类型的成员大小
我无法弄清楚发生了什么。
#include <iostream>
#include <vector>
using namespace std;
// reversing an array;`
int main(){
int n, a;
std::vector<int> vect;
cout << "enter size: ";
cin >> n;
int arr[n];
cout << "enter numbers in array ---> " << endl;
for(int i=0; i<n; i++){
cin >> arr[i];
}
//logic to reverse
for(int j=arr.size()-1; j>=0; j--){
a = arr[j];
vect.push_back(a);
}
for(int k=0; k<n; k++){
cout << vect[k];
}
}
I am facing an error:
request for member size in arr which is of non class type
I could not figure out what is happening.
#include <iostream>
#include <vector>
using namespace std;
// reversing an array;`
int main(){
int n, a;
std::vector<int> vect;
cout << "enter size: ";
cin >> n;
int arr[n];
cout << "enter numbers in array ---> " << endl;
for(int i=0; i<n; i++){
cin >> arr[i];
}
//logic to reverse
for(int j=arr.size()-1; j>=0; j--){
a = arr[j];
vect.push_back(a);
}
for(int k=0; k<n; k++){
cout << vect[k];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不认为数组类型具有函数大小
你可以使用向量代替 arr(向量 arr(n,0) )
I don't think array type has the function size
you can probably use vector instead of arr( vector arr(n,0) )
内置数组没有 .size() 成员函数。如果您愿意,则需要使用数组头文件中的数组。但您可以使用
for(int j=n-1; j>=0; j--){
。这是您的解决方案:
The built in array does not have a .size() member function. If you wanted that you would need to use the array in the array header file. But instead you could use
for(int j=n-1; j>=0; j--){
.This is your solution:
对于初学者来说,可变长度数组不是标准的 C++ 功能。并且在代码中声明了一个可变长度数组:
其次,数组不是类。他们没有成员函数。所以表达式
arr.size()
是不正确的。如果编译器支持在头
中为可变长度数组声明的函数std::size()
,则可以使用表达式std:: size(arr)
而不是arr.size()
。不过,您可以编写以下代码来代替
for
循环:For starters, variable length arrays are not a standard C++ feature. And a variable length array is declared in your code:
Secondly, arrays are not classes. They do not have member functions. So the expression
arr.size()
is incorrect.If the compiler supports the function
std::size()
declared in the header<iterator>
for variable length arrays, you could use the expressionstd::size(arr)
instead ofarr.size()
.Though, instead of the
for
loop, you could just write: