ForwardIterator rotate (ForwardIterator first, ForwardIterator middle,">

多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > STL algorithm算法rotate,rotate_copy(51)

STL algorithm算法rotate,rotate_copy(51)

來源:程序員人生   發布時間:2014-10-14 05:15:29 閱讀次數:3311次

rotate原型:

std::rotate

  • C++98
  • C++11
template <class ForwardIterator> ForwardIterator rotate (ForwardIterator first, ForwardIterator middle, ForwardIterator last);
該函數是循環移位函數。

效果是交換[middle,last)和[first,middle)部分的位置。

具體實現請自行搜索。

類似實現為:

template <class ForwardIterator> void rotate (ForwardIterator first, ForwardIterator middle, ForwardIterator last) { ForwardIterator next = middle; while (first!=next) { swap (*first++,*next++); if (next==last) next=middle; else if (first==middle) middle=next; } }
一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; void mrotate() { vector<int> vi{1,2,3,4,5,6}; vector<int> vresult{10,20,30,40,50}; cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"vresult="; for(int i:vresult) cout<<i<<" "; cout<<endl; rotate(vi.begin(),vi.begin()+3,vi.end()); rotate(vresult.begin(),vresult.end()-1,vresult.end()); cout<<"after rotate(vi.begin(),vi.begin()+3,vi.end())"<<endl; cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"after rotate(vresult.begin(),vresult.end()-1,vresult.end());"<<endl; cout<<"vresult="; for(int i:vresult) cout<<i<<" "; cout<<endl; }
運行截圖:





rotate_copy原型:

std::rotate_copy

template <class ForwardIterator, class OutputIterator> OutputIterator rotate_copy (ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result);
該函數是將rotate后的序列存放到result開始的位置。

實現類似于:

template <class ForwardIterator, class OutputIterator> OutputIterator rotate_copy (ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result) { result=std::copy (middle,last,result); return std::copy (first,middle,result); }
一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; void mrotatecopy() { vector<int> vi{1,2,3,4,5,6}; vector<int> vresult(6); cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"vresult="; for(int i:vresult) cout<<i<<" "; cout<<endl; rotate_copy(vi.begin(),vi.begin()+3,vi.end(),vresult.begin()); cout<<"after rotate_copy(vi.begin(),vi.begin()+3,vi.end(),vresult.begin())"<<endl; cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"vresult="; for(int i:vresult) cout<<i<<" "; cout<<endl; }
運行截圖:




――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

//寫的錯誤或者不好的地方請多多指導,可以在下面留言或者點擊左上方郵件地址給我發郵件,指出我的錯誤以及不足,以便我修改,更好的分享給大家,謝謝。

轉載請注明出處:http://blog.csdn.net/qq844352155

author:天下無雙

Email:coderguang@gmail.com

2014-9-26

于GDUT

――――――――――――――――――――――――――――――――――――――――――――――――――




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲综合一区二区精品久久 | 中文字幕成人 | 综合图| 日韩拍拍拍| 娇小性色xxxxx | 亚洲欧美日韩中文字幕久久 | 国产亚洲人成a在线v网站 | 欧美一级毛片高清毛片 | 五月天在线观看免费视频播放 | 另类 欧美 视频二区 | 国产一级做a爰大片免费久久 | 印度videos又粗又大 | 亚洲国产精品高清在线一区 | xxx性欧美在线观看 xxx性日本 | 日本免费爱爱视频 | 久久93精品国产91久久综合 | 国产欧美一区二区精品久久久 | 亚洲区一二三四区2021 | 波多野结衣久久国产精品 | 国产精品亚洲高清一区二区 | 国产在线精品一区二区夜色 | 麻豆免费版在线观看 | 国产福利片在线 | 欧美日本亚洲 | 性生交酡 | 岛国视频在线播放 | 国产中文字幕在线免费观看 | 亚洲免费网站观看视频 | 国产一区二区三区视频在线观看 | 久久国产一久久高清 | 欧美日韩乱 | 欧美另类老人xxxx | 欧美精品aaa久久久影院 | 亚洲免费高清视频 | www.操操操| 五月天开心中文字幕 | 秋霞麻豆| 韩国av片永久免费 | 日韩一区二区三区中文字幕 | 欧美一级在线播放 | 日本www视频|