C++ 中 Swap 与 RAII 的深入解析
1. Swap 基础概念与常见用法
Swap 习语有时也被称为复制 - 交换(copy - and - swap),它是实现具有提交或回滚语义操作,或是提供强异常安全保证的一种简单方法。其关键在于能够以低成本且不抛出异常的方式交换对象。
1.1 常见的 Swap 用法
- 重置容器到默认构造状态 :
- 可以通过创建一个默认构造的对象并与之交换来重置容器。例如:
class C {
public:
void swap(C& rhs) noexcept {
// ... swap data members ...
}
};
C c = ....; // Object with stuff in it
{
C tmp;
c.swap(tmp); // c is now default - constructed
} // Old c is now gone
- 也可以使用临时对象进行交换,代码更简洁:
C c = ....; // Object with stuff in it
C().swap(c); // Temporary is created and deleted
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



