STL容器类异常

vector

如果vector调用的函数抛出异常,C++标准程序库做出如下假设。

1.如果push_back()安插元素时发生异常,该函数不起作用。

2.如果拷贝操作不抛出异常,那么insert要么不生效,要么成功。

3.pop_back绝不抛出异常。

4.如果拷贝操作不抛出异常,erase,clear不抛出异常。

5.swap不抛出异常。

所有这些保证都基于一个条件:析构函数不得抛出异常。


deque

与vector类似

push_front和pop_front等同于vector的push_back和pop_back。


list

push_back,push_front,insert,resize:不成功,就是无任何作用

pop_back,pop_front,erase,clear,splice,reverse,swap:不抛出异常

remove,unique:只要元素比较操作不抛出异常,它就不抛出异常

remove_if:只要判断式不抛出异常,它就不抛出异常

merge:只要元素比较操作不抛出异常,它便保证要么不成功,要么无任何作用


set

面对多重元素插入异常抛出时无法完全复原。单一元素安插操作保证成功否则无效。

多元素删除总是能成功。

复制操作抛出异常,swap也会抛出异常。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值