返回
作用:交换元素
声明:
#include <algorithm> template<class Type> void swap(Type& objcet1, Type& objec2); template<class forwardItr1,class forwardItr2> void iter_swap(forwardItr1 first,forwardItr2 scecod); template<class forwardItr1, class forwardItr2> forwardItr2 swap_ranges(forwardItr1 first,forwardItr1 last, forwardItr2 first2);
#include <iostream> #include <list> #include <string> #include <numeric> #include <iterator> #include <vector> #include <functional> #include <algorithm> using namespace std; int main() { char cList[10] = {'A','B','C','D','F','G','H','I','J','K'}; vector<char> charList(cList,cList+10); vector<char>::iterator charItr; ostream_iterator<char> screen(cout," "); cout << "charList:" << endl; copy(charList.begin(),charList.end(),screen); cout << endl; // 容器内部元素交互 swap(charList[0],charList[1]); cout << "charList.swap" << endl; copy(charList.begin(),charList.end(),screen); cout << endl; // 用迭代器进行交互 iter_swap(charList.begin() + 2,charList.begin() + 3); cout << "charList.iter_swap" << endl; copy(charList.begin(),charList.end(),screen); cout << endl; charItr = charList.begin() + 4; iter_swap(charItr,charItr + 1); cout << "charList.iter_swap" << endl; copy(charList.begin(),charList.end(),screen); cout << endl; int list[10] = {1,2,3,4,5,6,7,8,9,10}; vector<int> intList(list,list + 10); ostream_iterator<int> screenInt(cout, " "); cout << "intList:" << endl; copy(intList.begin(),intList.end(),screenInt); cout << endl; swap_ranges(intList.begin(),intList.begin()+4,intList.begin()+5); cout << "intList.swap_ranges:" << endl; copy(intList.begin(),intList.end(),screenInt); cout << endl; // 不同容器之间元素交互 swap_ranges(list,list+10,intList.begin()); cout << "list:" << endl; copy(list,list+10,screenInt); cout << endl; cout << "intList: " << endl; copy(intList.begin(),intList.end(),screenInt); cout << endl; return 0; }
运行结果:
charList:
A B C D F G H I J K
charList.swap
B A C D F G H I J K
charList.iter_swap
B A D C F G H I J K
charList.iter_swap
B A D C G F H I J K
intList:
1 2 3 4 5 6 7 8 9 10
intList.swap_ranges:
6 7 8 9 5 1 2 3 4 10
list:
6 7 8 9 5 1 2 3 4 10
intList:
1 2 3 4 5 6 7 8 9 10