随笔分类 - STL
摘要:1.说说std::vector的底层(存储)机制。 vector就是一个动态数组,里面有一个指针指向一片连续的内存空间,当空间不够装下数据时,会自动申请另一片更大的空间(一般是增加当前容量的50%或100%),然后把原来的数据拷贝过去,接着释放原来的那片空间;当释放或者删除里面的数据时,其存储空间不
阅读全文
摘要:3、对于关联容器式(如map, set,multimap,multiset),删除当前的iterator,仅仅会使当前的iterator失效举例如下:void mapTest(){ map<int, string> dataMap; for (int i = 0; i < 10; i++) { st
阅读全文
摘要:2、对于链表型数据结构,比如list,使用了不连续分配的内存,删除运算使指向删除位置的迭代器失效,但是不会失效其他迭代器。解决办法有两种:与vector类似,erase(*iter)会返回下一个有效迭代器的值,或者erase(iter++)。
阅读全文