请你来说一说STL迭代器删除元素?
-
这个主要考察的是迭代器失效的问题。1.对于序列容器vector,deque来说,使用erase(itertor)后,后边的每个元素的迭代器都会失效,但是后边每个元素都会往前移动一个位置,但是erase会返回下一个有效的迭代器;2.对于关联容器map set来说,使用了erase(iterator)后,当前元素的迭代器失效,但是其结构是红黑树,删除当前元素的,不会影响到下一个元素的迭代器,所以在调用erase之前,记录下一个元素的迭代器即可。3.对于list来说,它使用了不连续分配的内存,并且它的erase方法也会返回下一个有效的iterator,因此上面两种正确的方法都可以使用。
-
请你来说一下STL中迭代器的作用,有指针为何还要迭代器?
2020-01-05 关注 0 浏览1296 1答案
-
说一说 C++ 迭代器怎么实现?
2022-09-21 关注 0 浏览35 2答案
-
请你说一说STL中MAP数据存放形式?
2020-01-05 关注 0 浏览988 1答案
-
请你来说一说协程?
2020-01-30 关注 0 浏览364 1答案
-
请你来说一说extern“C” ?
2020-01-05 关注 0 浏览1023 1答案
-
请你来说一说http协议
2020-01-30 关注 0 浏览770 1答案
-
请你说一说C++ STL 的内存优化?
2020-01-05 关注 0 浏览1713 1答案
-
请你来说一说hash表的实现,包括STL中的哈希桶长度常数
2020-01-30 关注 0 浏览521 1答案
-
请你说一说stl里面set和map怎么实现的?
2020-01-05 关注 0 浏览909 1答案
-
请你来说一说Redis的定时机制怎么实现的
2020-01-30 关注 0 浏览592 1答案