在c ++中需要一些关于动态数组的帮助
我所拥有的是一个动态的指针数组,即
Node* nodes;
和一个向该数组添加新节点的函数。
void insertNode(Node* nodeT){
nodes = new nodeT;
}
现在我的逻辑可能完全错了,因为我知道执行以下操作会有效,但我想知道是否有更好的方法而不使用STL
Node * nodes = new Node(arg);
感谢您提前提供任何帮助。
答案 0 :(得分:3)
在下面的nodes
中,只表示指向一个Node对象的指针。
Node * nodes = new Node(arg);
要在多个节点上获取数组,必须告诉编译器生成一个数组:
Node * nodes = new Node[size]();
然后你可以插入像这样的新对象
node[0] = ...
node[1] = ...
或者,当您无法提前确定节点数时,可以使用std::vector
。
答案 1 :(得分:1)
取决于你需要什么指针。您可以使用:
我个人更喜欢选项2.
选项1与选项2非常相似,但代替(T * dat)是(T ** dat)
P.S。我知道你们中的大多数人都会使用std(所以请不要判断)但是我使用它已经差不多二十年了,而且还在没有std存在的平台上。众所周知,已知的功能/行为对我的时间和安全关键应用程序来说都是一件好事。
希望有所帮助
答案 2 :(得分:0)
我建议使用std::vector
代替传统数组:
std::vector
是安全数组。请访问: