STL 정렬은 정렬 기준을 여러 번 반복 객체 컨테이너를 달성 할 수

1 #INCLUDE <iostream>
 2 #INCLUDE < 문자열 >
 3 #INCLUDE <벡터>
 4 #INCLUDE <알고리즘>
 5  
6  이용한  스페이스 성병;
7  
8  클래스 고양이 {
 9  대중 :
 10      INT ID;
11      문자열 이름;
12      INT 나이;
13      고양이 ( INT I, 문자열 N, INT의 a) {
 14I;
15          명 = N;
(16)         = 연령 들 a
 . (17)          
(18)된다      }    
 . 19  }
 (20)는  
21  / * 
22이된다  : 그 비교 함수 구현
 23  : 형식
 24      , 부울 compName (OBJ1, OBJ2)
 25  : 주
 (26)  (1) 함수는 불리언 값을 반환해야
 27  2. 함수 반환하는 경우를 사실 이는 파라미터 또는 기준이 순서로 (즉, 아무 교환), 즉 교환 false를 반환한다 주문할 것을 의미한다
 (28)  , 기능 (3) 정렬 (beginIndex의, endIndex에, compName)를 셋째 매개 변수
 29  
30  * / 
31 인  BOOL (myCompare A * CAT, CAT * B) {
 32      // 오름차순 ID를 프레스 
(33)는      IF (A-> ID <B-> ID)  에 해당하는 ,
 34은      다른 IF (A-> ID> B-> ID)  은 false ;
 35      다른 {
 36          // 동일한 ID
 37          // 전적으로 이름 주문하여 
38 인          IF (A-> name.compare (B-> 명) < 0 ) 반환  ;
 39          다른  IF (A-> name.compare (B-> 명)> 0 )  은 false ;
 40          다른 {
 41 인              // 나이, 소형 ~ 대형의, 동일한 이름 
42              IF (A-> 연령 <B- > 연령)  에 해당하는 ,
 (43)는              IF (A-> 연령> B-> 연령) 리턴 FALSE로 ,
 44은              다른 {
 45                  // 같은 연령
 46                  // true로 복귀 
(47)                   에 해당하는 ,
 48              }
 49          }
 50          
51이다      }
 52이다  }
 (53)이  
54 인  
55  INT 요점 () {
 56는      벡터 <고양이 *> V는,
 (57)이다      v.push_back ( 새로운 새로운 고양이 ( 1. , " " , 1. ));
 58      v.push_back ( 새 새 고양이 ( . 1 ," " , 1 ));
59      v.push_back ( 새로운 고양이 ( 1 , " Jimb " , 1 ));
60      v.push_back ( 새로운 고양이 ( 1 , " Jimc " , 1 ));
61      v.push_back ( 새로운 고양이 ( 1 , " J " , 1 ));
62      v.push_back (  고양이 ( 2 , " " , 1));
63      v.push_back ( 새로운 고양이 ( 2 , " Jizzz " , 1 ));
64      v.push_back (  고양이 ( 2 , " " , 2 ));
65      v.push_back (  고양이 ( 2 , " " , 3 ));
66      정렬 (시작 (V), 단부 (V) myCompare);
67       ( INT 난 = 0 ; I <v.size (); 나는 ++ ) {
 68          고양이 * C =V [I];
69          COUT << C-> ID << "  " << C-> << 이름 "  " << C-> << 나이 ENDL;
70      }
 71      
72  }
 73  
74  / * 
75  출력 :
 76  1 J 1
 77  1 짐 1
 78  1 마 1
 79  1 Jimb 1
 80  1 Jimc 1
 81  2 짐 1
 82  2 짐 2
 83  2 짐 3
 84  2 Jizzz 1
 85  
86  * /

 

추천

출처www.cnblogs.com/XT-xutao/p/12008506.html