作用:倒置或調換區間元素的位置
 
 聲明:
 
 
 
  #include?<algorithm>?? template?<class?biDirectionalItr>?? void?reverse(biDirectionalItr?first,?biDirectionalItr?last);?? ?? template?<class?biDirectionalItr,?class?outputItr>?? outputItr?reverse_copy(biDirectionalItr?first,?biDirectionalItr?last,outputItr?destFirst);?? ?? template?<class?forwardItr>?? void?rotate(forwardItr?first,?forwardItr?newFirst,?forwardItr?last);?? ?? template?<class?forwardItr,?class?outputItr>?? outputItr?rotate_copy(forwardItr?first,?forwardItr?middle,?forwardItr?middle,last,outputItr?destFirst);?? 
 
 
示例代碼: 
 
 
 
 
  #include?<iostream>?? #include?<list>?? ?? #include?<string>?? #include?<numeric>?? #include?<iterator>?? #include?<vector>?? #include?<functional>?? ?? #include?<algorithm>?? ?? using?namespace?std;?? ?? int?main()?{?? ????int?temp[10]?=?{1,3,5,7,9,0,2,4,6,8};?? ????list<int>?intList(temp,temp+10);?? ????list<int>?resultList;?? ????list<int>::iterator?listItr;?? ?? ????ostream_iterator<int>?screen(cout,"?");?? ????cout?<<?"intList"?<<?endl;?? ????copy(intList.begin(),intList.end(),screen);?? ????cout?<<?endl;?? ?????? ????reverse(intList.begin(),intList.end());?? ????cout?<<?"intList"?<<?endl;?? ????copy(intList.begin(),intList.end(),screen);?? ????cout?<<?endl;?? ?? ?????? ????reverse_copy(intList.begin(),intList.end(),back_inserter(resultList));?? ????cout?<<?"resultList:"?<<?endl;?? ????copy(resultList.begin(),resultList.end(),screen);?? ????cout?<<?endl;?? ?? ????listItr?=?intList.begin();?? ????listItr++;?? ????listItr++;?? ????cout?<<?"intList?before?ratete"?<<?endl;?? ????copy(intList.begin(),intList.end(),screen);?? ????cout?<<?endl;?? ?????? ????rotate(intList.begin(),listItr,intList.end());?? ????cout?<<?"intList?after?ratete"?<<?endl;?? ????copy(intList.begin(),intList.end(),screen);?? ????cout?<<?endl;?? ?? ????resultList.clear();?? ?????? ????rotate_copy(intList.begin(),listItr,intList.end(),back_inserter(resultList));?? ????cout?<<?"intList?after?ratete_copy"?<<?endl;?? ????copy(intList.begin(),intList.end(),screen);?? ????cout?<<?endl;?? ?? ????cout?<<?"resultList:"?<<?endl;?? ????copy(resultList.begin(),resultList.end(),screen);?? ????cout?<<?endl;?? ?? ????resultList.clear();?? ?????? ????rotate_copy(intList.begin(),find(intList.begin(),intList.end(),6),intList.end(),back_inserter(resultList));?? ????cout?<<?"resultList:"?<<?endl;?? ????copy(resultList.begin(),resultList.end(),screen);?? ????cout?<<?endl;?? ?? ????return?0;?? }?? 
 
 
 
 
 運行結果:
 
 intList
 1 3 5 7 9 0 2 4 6 8
 intList
 8 6 4 2 0 9 7 5 3 1
 resultList:
 1 3 5 7 9 0 2 4 6 8
 intList before ratete
 8 6 4 2 0 9 7 5 3 1
 intList after ratete
 4 2 0 9 7 5 3 1 8 6
                            總結
                            
                                以上是生活随笔為你收集整理的STL 之reverse,reverse_copy,rotate,rotate_copy的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。