在c ++中设置基本创建

Dum*_*mon -4 c++

我试图通过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相关的错误.我做错了什么?

Bas*_*tch 6

你的代码是非法的(在许多地方都是错误的,所以花几天时间阅读一本好的C++书然后看一些C++参考网站).你不能声明一个可变长度数组的成员structclass(即使你能,你有错误的语法;一些编译器支持它们作为一个扩展,和C99 -但没有C++ dialect-具有灵活的数组成员).

您最好使用现有的标准C++ 容器.如果你不能使用它们,你需要指针(你应该更喜欢智能指针).

即使您有一些编译器接受VLA作为扩展,您可能需要为它们动态分配内存区域.

我强烈建议学习使用容器.

编译时不要忘记启用所有警告和调试信息.使用GCC,编译g++ -Wall -Wextra -g.使用debugger(gdb)和valgrind.