'STL'에 해당되는 글 1건

  1. 2007년 04월 10일 STL : 실시간에 정렬 기준 정의하기<string, string> (2) - 소류

class RuntimeStringCmp {
public:
 // 비교 기준을 위한 상수
 enum cmp_mode {normal, nocase};
 
private:
 // 실제 비교 모드
 const cmp_mode mode;
 
 // 대/소문자를 구별하지 않고 비교하기 위한 보조 함수
 static bool nocase_compare(char c1, char c2)
 {
  return toupper((c1) < toupper(c2));
 }

public:
 // 생성자: 비교 기준으로 초기화된다.
 RuntimeStringCmp(cmp_mode m=normal) : mode(m) {
 }

 // 비교
 bool operator() (const std::string& s1, const std::string& s2) const {
  if(mode == normal) {
   return s1<s2;
  }
  else {
   return std::lexicographical_compare(s1.begin(), s1.end(), s2.begin(), s2.end(), nocase_compare);
  }
 }
};

크리에이티브 커먼즈 라이센스
Creative Commons License
2007년 04월 10일 15시 57분 2007년 04월 10일 15시 57분