STL 알고리즘은 일반적으로 사용

일종의 정렬

종류 (first_pointer, first_pointer + N,
CMP) 기본 오름차순

하강, 자기 쓰기 기능 CMP를 사용하려면

CMP BOOL (A의 INT, INT B)
{
리턴은 <B // 대신 돌아 가면 승순> 내림차순 B이었다
}

예를 들면 :
방법 A : 비교 함수 정의 (가장 일반적인)
// 경우 : 어레이 배열
INT의 A [100]
BOOL CMP1 (A INT, INT의 B) // int 형 배열 데이터
{
복귀 A> B // 하강 배열
//은 <B를 리턴 // 기본 오름차순
}
정렬 (A, A + 100를 CMP1);

@ 사례 2 : 배열 구조체
학생 스투 [100]
BOOL CMP2 (학생 A, B 학생)
{
창 a.id> b.id; // 학생 내림차순 번호 순서
// 창 a.id <b.id // 오름차순 학생 번호
}
정렬 (스투 스튜 + 100, CMP2)
참고 : 비교 방법은 구조 또는 클래스 정의 내에 배치 될 수있다.

// 값으로 분류 달성하기 위해 매핑
개의 키 값의 값을 포함하는지도의지도 키 값에 따라 분류되어, 값이 값은 다음과 같이 분류하는 경우 다음
의 typedef 쌍 <문자열 INT> 쌍;
INT CMP ( 한 쌍의 X 및 CONST, Y 및 쌍 CONST)
{
창 x.second> y.second;
}

지도 <문자열 INT> m]
벡터 <쌍> VEC]
대 (MAP <wstring의, INT> :: = m 반복자 문헌 [Curr. 문헌 [Curr ++) 상기 ()는 문헌 [Curr ;! m.end = () 시작
{
(curr-> SECOND curr- make_pair (> 우선))를 vec.push_back
}
정렬 (vec.begin () vec.end () , CMP)
쌍으로 구성된 새로운 구조의 키 값 맵은 벡터의 메모리 맵 쌍 유형의 모든 내용이, 값 vecor 값에 따라 정렬. 순차적으로 출력 키 :

참고 : 당신이 그런 종류의 경우,이 CMP 정의는 클래스 외부에 배치해야한다, 또는 정적 멤버 함수로 정의 된 비 멤버 함수로 (권장) 또는 다른 (같이) 컴파일러는 잘못됩니다.

 

 올바른 표현 :

정적 클래스의 멤버 함수로서 정의 CMP

클래스 솔루션 {
공공의:
     정적   BOOL가  비교 (벡터 <INT> A, 벡터 <INT> B는) //는 정의 된 정적 // 그렇지 않으면 에러가보고 될 비교할
    {
        경우 (a [0] == B [0]) {
            A [1] <(B)을 반환 [1];
        } 다른 {
            A [0]> B [0] 리턴;
        }
    }

    벡터 <벡터 <INT >> ReconstructQueue (벡터 <벡터 <INT >> 및 명)
    {
        종류 () (people.begin, people.end (),  비교 );
        벡터 <벡터 <INT >> 입술;
        경우 (나는 <people.size (); INT 나 0 = I ++) {   
            res.insert (res.begin () 명 + [I] [1], 사람 [I]);
        }
        고해상도를 반환;
    }
};
 
두,  next_permutation 전체 배열

사용법 #include <iostream>
#INCLUDE <알고리즘>
#INCLUDE <문자열>
네임 스페이스를 사용하여 표준;

() 주요 int로
{
문자열의;
의 getline (CIN은, S);
종류 (s.begin (), s.end ());
이렇게
{
  COUT << S << ENDL 단계;
  } 동안 (next_permutation (s.begin () s.end ()));
  0을 반환;
}

注: next_permutation原型:
#INCLUDE <알고리즘>
BOOL next_permutation (반복자 시작 반복자 단부)

주 : 완전 필요성은 사용 전에 어레이의 오름차순으로 배열. (이 다음 전체 배열을 추구하는 현재의 배열을 기반으로하기 때문에)

 

 

추천

출처www.cnblogs.com/sunshine1218/p/12088728.html