STL_알고리즘회전 (rotate, rotate copy)
/**------http://blog.csdn.net/u010579068------**/
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<algorithm>
using namespace std;
/*****************************************
//
rotate(b,m,e) // m-b , ( )
rotate_copy(b,m,e,b2)
*****************************************/
/**----------------------------------------------------------------------------------
STL -
reverse() //
reverse_copy()
rotate() //
rotate_copy()
next_permutation()
prev_permutation()
random_shuffle()
partition()
stable_partition()
----------------------------------------------------------------------------------**/
/*************************************************************************************
std::rotate algorithm
--------------------------------------------------------------------------------------
template <class ForwardIterator>
void rotate ( ForwardIterator first, ForwardIterator middle,
ForwardIterator last );
//eg:
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;
}
}
*************************************************************************************/
/*************************************************************************************
std::rotate_copy algorithm
--------------------------------------------------------------------------------------
template <class ForwardIterator, class OutputIterator>
OutputIterator rotate_copy ( ForwardIterator first, ForwardIterator middle,
ForwardIterator last, OutputIterator result );
//eg:
template <class ForwardIterator, class OutputIterator>
OutputIterator rotate_copy ( ForwardIterator first, ForwardIterator middle,
ForwardIterator last, OutputIterator result )
{
result=copy (middle,last,result);
return copy (first,middle,result);
}
*************************************************************************************/
int main()
{
vector<int> myvector;
vector<int>::iterator it;
// set some values:
for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9
rotate(myvector.begin(),myvector.begin()+4,myvector.end());
//5 6 7 8 9 1 2 3 4
// print out content:
cout << "myvector contains:";
for (it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it;
cout << endl;
/**----------------------------------------------------------------------------**/
int myints[] = {10,20,30,40,50,60,70,80,90};
myvector.clear();
myvector.resize(9);
list<int> li(9);
list<int>::iterator iter;
copy(myints,myints+9,myvector.begin());
rotate_copy(myvector.begin(),myvector.begin()+4,myvector.end(),li.begin());
// print out content:
cout << "mylist contains:";
for (iter=li.begin(); iter!=li.end(); ++iter)
cout << " " << *iter;
cout << endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
세션이 만료되면 로그인 페이지의 인스턴스 코드로 자동 이동최근 프로젝트에 대한 수요가 있습니다. 자동 로그인 기능을 실현하려면 관련 자료를 조회하여 session 감청으로 하려고 합니다. 다음은 감청기를 설정하는 방법을 보여 줍니다. 1. 프로젝트의 웹에서xml 파일에 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.