有三个交换函数,swap、swap_ranges、iter_swap
其中需要注意的是容器和数组虽然都可以充当存放元素的数据类型,但是两个不同的概念,之间的区别是可以将容器看成基本的数据类型,可以像处理基本的数据类型一样来处理容器,比如直接赋值,或者当成参数传递给函数做形参;但是数组有所不同,数组是一个包括有很多元素的数据类型,不能像处理基本数据类型那样直接对数组进行操作,需要借助指针。所以之间的区别也体现在了这三个交换函数的使用上面;
(1)基本数据类型可以使用swap、iter_swap两个函数
(2)基本序列容器可以使用swap、iter_swap、swap_ranges三个函数
(3)数组只能使用swap_ranges。
另外需要注意的是:
数组的大小是固定的,不可能动态的变化,因此int a[5]全部数据不能和int b[8]的全部数据进行交换;但是对基本序列容器而言,由于它支持元素空间动态分配,因此相交换的容器拥有的元素内存空间可以是不同的,所以两个具有不同容量的基本序列容器可以交换,比如vector<int>v1(10)可以和vector<int>v2(3)交换