函数原型 //swap template<class T> void swap(T & a, T & b); //swap_ranages template<class FwdIt1, class FwdIt2> FwdIt2 swap_ranages(FwdIt first, FwdIt last, FwdIt2 x) //iter_swap template<class FwdIt1, class FwdIt2> void iter_swap(FwdIt1 x, FwdIt2 y) swap iter_swap swap_ranges #include <iostream> #include <vector> #include <iterator> #include <algorithm> #include <cstdlib> using namespace std; int main(int argc,char argv[]) { int a = 10; int b = 20; cout << "原始数据 a = " << a << "/tb = " << b << endl; swap(a,b); cout << "交换后数据 a = " << a << "/tb = " << b << endl; int a2[5] = {1, 2, 3, 4, 5}; int b2[5] = {6, 7, 8, 9, 10}; cout << "原始a2[5] = "; copy(a2, a2+5, ostream_iterator<int>(cout, " ")); cout << endl; cout << "原始b2[5] = "; copy(b2, b2+5, ostream_iterator<int>(cout, " ")); cout << endl; swap_ranges(a2, a2+5, b2); cout << "交换后a2[5] = "; copy(a2, a2+5, ostream_iterator<int>(cout, " ")); cout << endl; cout << "交换后b2[5] = "; copy(b2, b2+5, ostream_iterator<int>(cout, " ")); cout << endl; int a3[5] = {10, 20, 30, 40, 50}; int b3[5] = {15, 25, 35, 45, 55}; vector<int> v1(a3, a3+5); vector<int> v2(b3, b3+5); cout << "原始 vector1 = "; copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, " ")); cout << endl; cout << "原始 vector2 = "; copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " ")); cout << endl; swap(v1, v2); iter_swap(v1.begin(), v2.begin()); cout << "交换后 vector1 = "; copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, " ")); cout << endl; cout << "交换后 vector2 = "; copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " ")); cout << endl; int a4[5] = {11, 21, 31, 41, 51}; int b4[5] = {12, 22, 32, 42, 52}; vector<int> v3(a4, a4+5); vector<int> v4(b4, b4+5); cout << "原始 vector3 = "; copy(v3.begin(), v3.end(), ostream_iterator<int>(cout, " ")); cout << endl; cout << "原始 vector4 = "; copy(v4.begin(), v4.end(), ostream_iterator<int>(cout, " ")); cout << endl; iter_swap(v3.begin(), v4.begin()); cout << "交换后 vector3 = "; copy(v3.begin(), v3.end(), ostream_iterator<int>(cout, " ")); cout << endl; cout << "交换后 vector4 = "; copy(v4.begin(), v4.end(), ostream_iterator<int>(cout, " ")); cout << endl; system("pause"); return 0; }