仅在发布模式下编译错误 - stl向量

时间:2013-09-27 07:43:01

标签: c++ stl visual-studio-2005

我正在尝试构建一个由3个vc项目文件组成的c ++解决方案。在哪里使用我自己的stl库和标准的stl集合[lists,vectors .. etc]前缀为正确的命名空间。

用于一个特定变量[用户定义类型的向量]。 这是一些用户定义结构的元素,它给出了一个错误:

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

,那行代码是

std::vector<ACand> Cands;

对于上述变量我尝试执行插入和删除等最小操作。

它在调试模式下正常工作。 在发布模式下无法做同样的事情。

任何人都可以帮我解决错误。

由于 拉达

1 个答案:

答案 0 :(得分:1)

你永远不应该尝试创建自己的stl容器。编译器实现提供的方法比您可能实现的方法更好。 但是如果你仍然想要这样做,请在它们前面添加适当的命名空间(比如mystd或其他东西)。我的猜测是,在某种程度上发布时,你的程序试图使用std :: vector而不是mystd :: vector,所以它抱怨因为std :: vector不包含任何_Mycont成员。