博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Iterator invalidation(迭代器失效)
阅读量:5091 次
发布时间:2019-06-13

本文共 1490 字,大约阅读时间需要 4 分钟。

一.vector

所有读操作、swap、std::swap:都不会引起迭代器失效...

clear、operator=、assign:都会引起全部变量迭代器失效

reserve、shrink_to_fit:如果capacity的大小被改变了,则引起全部变量迭代器失效

erase:被删除的变量以及其后面的变量包括end()都迭代器失效

push_back、emplace_back:假如capacity的大小被改变,则引起全部变量迭代器失效。否则只是end()迭代器失效

insert、emplace、resize:假如capacity的大小被改变,则引起全部变量迭代器失效。否则只是在插入位置后面的变量迭代器失效

pop_back:被删除的变量以及end()迭代器失效

二.deque(没有发生删除且只插入在末尾,指针和引用不失效)

All read only operations Never
The past-the-end iterator may be invalidated (implementation defined)
Always
If erasing at begin - only erased elements

If erasing at end - only erased elements and the past-the-end iterator

Otherwise - all iterators are invalidated (including the past-the-end iterator).

If the new size is smaller than the old one : only erased elements and the past-the-end iterator

If the new size is bigger than the old one : all iterators are invalidated

Otherwise - none iterators are invalidated.

Only to the element erased
Only to the element erased and the past-the-end iterator

Invalidation notes

    • When inserting at either end of the deque, references are not invalidated by  and .
    •  and  do not invalidate any references to elements of the deque.
    • When erasing at either end of the deque, references to non-erased elements are not invalidated by  and .
    • A call to  with a smaller size does not invalidate any references to non-erased elements.
    • A call to  with a bigger size does not invalidate any references to elements of the deque.

转载于:https://www.cnblogs.com/Call-C/p/6979148.html

你可能感兴趣的文章
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>
安卓学习资料推荐-25
查看>>
Mysql数据库备份和还原常用的命令
查看>>
关于退出当前页面在火狐的一些问题
查看>>
【项目实施】项目考核标准
查看>>
spring-aop AnnotationAwareAspectJAutoProxyCreator类
查看>>
经典入门_排序
查看>>
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>