我试图通过struct实现基本方法的设置.这是我的变种:
#include <iostream>
using namespace std;
struct Set<T> {
int n;
T[n] elements;
}
int main(){
struct Set microSet;
int oneElm, length;
cin>>length;
microSet.n=length;
for(int i=0;i<length;i++) {
cin>>oneElm;
microSet.elements[i]=oneElm;
}
for(int i=0;i<length;i++)
cout << microSet.elements[i];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Compilator向我显示与sruct相关的错误.我做错了什么?
你的代码是非法的(在许多地方都是错误的,所以花几天时间阅读一本好的C++书然后看一些C++参考网站).你不能声明一个可变长度数组的成员struct或class(即使你能,你有错误的语法;一些编译器支持它们作为一个扩展,和C99 -但没有C++ dialect-具有灵活的数组成员).
您最好使用现有的标准C++ 容器.如果你不能使用它们,你需要指针(你应该更喜欢智能指针).
即使您有一些编译器接受VLA作为扩展,您可能需要为它们动态分配内存区域.
我强烈建议学习使用容器.
编译时不要忘记启用所有警告和调试信息.使用GCC,编译g++ -Wall -Wextra -g.使用debugger(gdb)和valgrind.