精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究。点名“简易百科”和“闲暇巴”盗用锐英源原创内容。
在调试一个有非常复杂数据结构的软件时,遇到:map/set iterators incompatible错误,具体代码行是。
it->second使用
复杂在map是多层的,不是单层map,里面循环也是多层的,数据量也有上G,占用内存多。
这个it肯定有初始化,初始化后执行了循环后出现错误map/set iterators incompatible。
我把数据环境初始化了一下,再执行软件,没再报错。
有可能是map的键结构在操作时被修改了,再使用遍历指针就出这样的错。
C++新出的智能指针让内存管理更方便了,但是还是不放心。内存管理上C语言原始吧,不涉及到面向对象,只要用好内存池问题不大,但是C++结合STL的内存管理很麻烦,又不像C#或java有虚拟机平台进行整体底层管理,所以用C++开发,有时候就要会避开陷阱,代码逻辑要清晰,模块边界要规整。
锐英源软件有这方面的大量例子,有兴趣学好C++掌握C++请找锐英源软件。