4.3.3  互换

4.3.3 互换

STL的大部分容器均提供了成员函数swap(),用于实现两个不同容器之间的元素交换。STL同时还提供了swap()算法。其原型为:

978-7-111-51399-5-Chapter04-66.jpg

978-7-111-51399-5-Chapter04-67.jpg

第一种形式可用于交换两个类型相同的容器对象,即交换两个容器对象的所有元素。

第二种形式可用于交换两个容器中的部分元素。swap_ranges()函数的第一个first和第二个参数last用来指定第一个用于交换的容器1中的元素的范围;参数x表示在第二个容器中,以迭代器x为开始位置,并和容器1指定范围相等元素个数的容器2的元素范围。下面以例4-18为例阐释swap()算法的使用方法。

例4-18

978-7-111-51399-5-Chapter04-68.jpg

978-7-111-51399-5-Chapter04-69.jpg

例4-18的执行效果如图4-18所示。

978-7-111-51399-5-Chapter04-70.jpg

图4-18 例4-18的执行效果