C++ 11 新特性:容器的非成员函数swap

本文探讨了C++11中容器的非成员函数swap,揭示了其快速交换容器内容的原理,指出除string外,迭代器、引用和指针在swap后仍然有效。同时,详细阐述了array类型的swap会交换元素值,可能导致迭代器等失效的情况。建议在泛型编程中优先使用非成员swap函数。
摘要由CSDN通过智能技术生成

除aary外,交换两个容器内容的操作保证会很快------元素本身并未被交换,swap只是交换了两个容器的内部数据结构。元素不会被移动的事实意味着,除string外,指向窗口的迭代器、引用和指针在swap操作之后都不会失效。它们仍指向swap操作之前所指向的那些元素,只是这些元素已经属于不同的容器了。与其它容器不同,对一个string调用swap会导致迭代器、引用和指针失效。

swap两个array会真正交换它们的元素,因此交换两个array所需的时间与array中元素的数目成正比;对于array,在swap操作之后,指针、引用和迭代所绑定的元素保持不变,但元素值已经与另一个array中对应元素的值进行了交换。

#include <algorithm>
#include <array>

using namespace std;

int main(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值