创建一个列表以在C++中保存对象

Dra*_*Vet 4 c++

请原谅我,如果这看起来有点天真,但我对C++很新,经过多年的C和Java,我想我的脑袋有点困惑.

我正在尝试创建一个未知大小的数组,其中包含我创建的节点.

node *aNode = new node(14,32);
std::list<node> dataSet;
std::list<node>::iterator it;
it = dataSet.begin();
dataSet.insert(it, aNode)
Run Code Online (Sandbox Code Playgroud)

但是,当我编译它(概念验证测试)时,它会拒绝,抛出各种错误.

我知道这很简单,我无法理解.有人可以帮忙吗?提前致谢!

编辑:这是节点:

class node{
    float startPoint;
    float endPoint;
    float value;
public:
    node(float, float);
    void setValues(float, float);
};

node::node(float start, float end){
    startPoint = start;
    endPoint = end;
}
Run Code Online (Sandbox Code Playgroud)

和编译器错误:

错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

错误C2371:'it':重新定义; 不同的基本类型

错误C2440:'初始化':无法从'std :: list <_Ty> :: _ Iterator <_Secure_validation>'转换为'int'

错误C2146:语法错误:缺少';' 在标识符'dataSet'之前

错误C2143:语法错误:缺少';' 在'.'之前

错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

错误C2371:'dataSet':重新定义; 不同的基本类型

更新:我将一点点代码更改为:

 node aNode(14, 32);
 std::list<node> dataSet;
 dataSet.insert(dataSet.begin(), aNode);
Run Code Online (Sandbox Code Playgroud)

但这3个错误仍然存​​在:

 error C2143: syntax error : missing ';' before '.'
 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
 error C2371: 'dataSet' : redefinition; different basic types
Run Code Online (Sandbox Code Playgroud)

PoB*_*lek 5

您的列表应该是类型,std::list<node*>或者您应该插入节点对象(而不是指向一个节点对象).

node *aNode = new node(14, 32);
std::list<node*> dataSet;
dataSet.insert(dataSet.begin(), aNode);
Run Code Online (Sandbox Code Playgroud)

要么

node aNode(14, 32);
std::list<node> dataSet;
dataSet.insert(dataSet.begin(), aNode);
Run Code Online (Sandbox Code Playgroud)