生活随笔
收集整理的這篇文章主要介紹了
STL 之swap, iter_swap, swap_ranges
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作用:交換元素
聲明:
#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;?? }??
運(yùn)行結(jié)果:
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
總結(jié)
以上是生活随笔 為你收集整理的STL 之swap, iter_swap, swap_ranges 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。