<,>
)로 알파벳순 비교 가능부등호 기호로 사전순 비교가 가능하며,
사전순으로 더 앞선 문자열이 더 작은 문자열이 된다.
#include <string> string str1 = "aaab"; string str2 = "aaac"; cout << (str1 < str2); // 1(참)반환 // str1과 str2중 str1이 사전순으로 //더 앞선 글자임으로 str2보다 작다
find
multimap 에서 find
로 key
값을 찾을 때 중복되는 key
라면,
먼저 삽입된(맨 앞에 오는 원소) key
의 iterator
을 반환한다.
#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 도 map과 동일하게 삽입과 동시에 key
값을 기준으로 정렬이 이루어진다. 중복되는 key
값에 대해선 default는 먼저 들어온 순서로 정렬된다. (lower_bound,upper_bound 코드 참고)