STL 迭代器失效和运算符重载容易错误问题

来源:互联网 发布:云豹直播源码安装 编辑:程序博客网 时间:2024/06/11 02:00

1.一定要小心迭代器失效

1) 容器本身是空的,使用迭代器前,需要检验迭代器是否有效。

2) 容器本身增删失效,erase返回的是下一个迭代器,容器改变了插入删除了那么原来的迭代器就很容易失效。

3)容器存放的数据增删,容器内尽量存放的是结构体,而不是指针,存放指针很容易导致那块内存删掉了而变成存放的是野指针了。


2. STL结构体里面包含有 STL容器,那么不能使用memset来初始化


3.运算符重载要非常小心,需要考虑全面

小心二叉树类型容器排序查找用到的运算符<重载的写法,序列类型容器排序用到的<运算符重载,及其序列查找使用用std:find用到的==运算符重载。



1 0
原创粉丝点击