5월 16일

RushBsite·2021년 5월 16일
0

TIL

목록 보기
3/18
post-thumbnail

문자열 알파벳순 비교


부등호 기호(<,>)로 알파벳순 비교 가능

부등호 기호로 사전순 비교가 가능하며,
사전순으로 더 앞선 문자열이 더 작은 문자열이 된다.

#include <string>
string str1 = "aaab";
string str2 = "aaac";
cout << (str1 < str2); // 1(참)반환
                       // str1과 str2중 str1이 사전순으로 
                       //더 앞선 글자임으로 str2보다 작다

multimap 에서의 탐색·정렬


multimap에서의 탐색

  • find
    multimap 에서 findkey값을 찾을 때 중복되는 key라면,
    먼저 삽입된(맨 앞에 오는 원소) keyiterator을 반환한다.

    #include<map>
    multimap<string,int> m;
    using namespace std;
    int main(){
       m.insert(make_pair("key",20));
       m.insert(make_pair("key",10));
       m.insert(make_pair("key",30));
    
       map<key,int>::iterator it = m.find("key");
       cout << it->second; // 출력 : 20
       return 0;
      }
  • lower_bound()&upper_bound()
    multimap 에서 해당하는 key값의 모든 원소들에 접근하고자 할때는 lower_bound()upper_bound() 멤버함수를 사용한다.

    • lower_bound(key) : key 값에 해당되는 가장 첫번재 원소를 가리키는 iterator 반환
    • upper_bound(key) : key 값에 해당되는 원소의 다음을 가리키는 iterator 반환
    • equal_range(key) : key 값에 해당되는 원소의 범위([lower_bound,upper_bound))pair 객체로 반환
    #include<map>
    multimap<string,int> m;
    using namespace std;
    int main(){
     m.insert(make_pair("key",20));
     m.insert(make_pair("key",10));
     m.insert(make_pair("key",30));
    
     for(auto it = m.lower_bound("key"); it!=upper_bound("key"); it++) {
     cout << it->second << " "; // 출력 : 20 10 30 
    }
     return 0;
    }
    

multimap에서의 정렬

multimap 도 map과 동일하게 삽입과 동시에 key값을 기준으로 정렬이 이루어진다. 중복되는 key값에 대해선 default는 먼저 들어온 순서로 정렬된다. (lower_bound,upper_bound 코드 참고)

profile
게임 기획/개발 지망생

0개의 댓글