失效迭代器

失效迭代器(Invalidating Iterators)当一个容器变化时,指向该容器中元素的迭代器可能失效。这使得在迭代器变化期间改变容器容易出现问题。在这方面,不同的容器提供不同的保障:vectors: 引起内存重新分配的插入运算使所有迭代器失效,插入也使得插入位置及其后位置的迭代器失效,删除运算使得删除位置及其后位置的迭代器失效.list/map: 插入不会使得任何迭代器失效;删除运算使指向删除位置的迭代器失效,但是不会失效其他迭代器.
2011-04-16 11:17 | 阅读 765 次 | 评论 0 条

堆内存和栈内存的划分[C][内存管理][转载]

一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 4.另外还有一个专门放常量的地方。- 程序结束释放 ...
2011-03-28 09:32 | 阅读 995 次 | 评论 2 条

C++中不常用的关键字

转自:http://pcedu.pconline.com.cn/empolder/gj/c/0412/514980_3.html mutable关键字  关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员  我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,  对像的状态也会随之发生变化!  如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是  该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对类的数据成员  进行赋值.这个时候就需要用到mutable关键字了  例如:  class...
2011-03-26 10:01 | 阅读 889 次 | 评论 0 条

关于C++的 explicit关键字

简而言之:explicit修饰的构造函数不能担任转换函数。首先这个关键字只能用在类构造函数。它的作用是不能进行隐式转换。当构造函数参数超过两个时自动取消隐式转换。但是另外一种情况例外:其中只有一个必须输入的参数,其余的为有默认值的参数。此时隐式转换又开启了。以下是 《ANSI/ISO C++ Professional Programmer's Handbook 》是这样说的explicit ConstructorsA constructor that takes a single argument is, by default, an implicit conversion operat...
2011-03-26 09:32 | 阅读 999 次 | 评论 0 条
浏览25436次