我在我的代码中使用了Vectors。C++中的向量初始化
,导致该错误的行如下所示:
vector<Node> alt_seq ;
alt_seq = vector<Node>(1000);
for(int j=0; j<alt_cf.getNoOfNodes(i); j++)
{
Node temp_node = *alt_itr;
alt_itr++;
alt_seq.push_back(temp_node);
}
线:
alt_seq.push_back(temp_node);
导致运行时错误。但是,如果我初始化一些初始大小的矢量如下:
vector<Node> alt_seq(1000) ;
在这种情况下代码工作正常。 但是我不想给出初始大小,因为矢量中的对象数量在运行时将是可变的。 请帮帮我。我是新的C++。
供您参考完整的方法函数是在这里:
看起来像类节点的三大实现问题。你能告诉我们“节点”的定义吗? – dirkgently 2012-04-28 21:22:27
'vector alt_seq(1000)'将在向量中构造1000个'Node'对象,这与不指定计数不同。你的'push_back'问题听起来像是'Node'的赋值/拷贝构造函数的一个可能的问题。你能展示这个类的声明和定义吗? –
birryree
2012-04-28 21:23:07
顺便说一句,pastebin链接也没有类节点的定义。 – dirkgently 2012-04-28 21:25:08