我在代码中使用向量。
导致错误的行如下:
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,如下所示:
vector<Node> alt_seq(1000) ;
在这种情况下,代码工作正常。
但是,我不想给出初始大小,因为向量中的对象数量在运行时是可变的。
请帮我。我是 C++ 新手。
完整的 Method 函数在这里供您参考:
http://pastebin.com/2dUFEui5
Your Node
类有一个类型的指针成员CombinedFragment*
called cfrag
。如果您没有定义自己的复制构造函数和赋值运算符,这会创建悬空引用。此外,如果出现以下情况,则需要适当的干燥器来防止泄漏:Node
负责分配/解除分配cfrag
。如果你不想深复制CombinedFragment
你可以使用shared_ptr
.
另外,默认的ctorNode
可能甚至不需要在那里(它离开了cfrag
到未初始化状态)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)