2023. 6. 25. 17:48, 알고리즘/BOJ
hash를 이용한 unordered_map의 경우, hash 를 사용하기 때문에 순서를 정할 수 없어서 iterator에 대한 사용을 볼 수 없었는데,
이진탐색트리를 이용한 map의 경우는 키-값 쌍에서 키값에 대해서 순서를 가지면서 자료들이 담기기 때문에 이에 대해서 iterator를 사용하여서 순서를 따라가면서 원소들에 접근할 수 있고, 이때에 iterator를 사용할때에 -> (arrow operator, 화살표 연산자) 를 사용하여서 각각의 pair의 first 와 second에 접근할 수 있다.
이걸 사용하는 코드를 접하게 되었고,
그 코드를 첨부해보면,
void map_example(){
map<string, int> m;
m["hi"] = 123;
m["bkd"] = 1000;
m["gogo"] = 165; //("bkd",1000),("gogo",165),("hi",123)=>순서를 나타내고, 이 순서들은 key 값의 순서로 결정된다.
cout<<m.size()<<'\n'; // 3
m["hi"] =-7; // ("bkd", 1000), ("gogo", 165), ("hi", -7)
if(m.find("hi")!=m.end()) cout<<"hi in m\n";
else cout<< "hi not in m\n";
m.erase("bkd"); // ("gogo",165), ("hi", 123)
for(auto e: m)
cout<<e.first<<' '<<e.second<<'\n';
auto it1=m.find("gogo");
cout<<it1->first<<' '<<it1->second<<'\n';
}
이런 형태의 코드에서 맨 마지막에
auto it1=m.find("gogo");
cout<<it->first<<' '<<it1->second<<'\n';
형태의 코드였다. 이와 관련하여서 ->(arrow operator , 화살표 연산자)에 대해서 내용을 첨부해보면 아래와 같다.
순서에 따른 iterator를 통한 연산에서 키값과 밸류 값을 각각 사용하기 위해서 -> 사용도 떠올려보면서 프로그램을 작성해보도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
boj 23326번 문제를 통해 보는 switch 문에서 맨 마지막 case의 break의 생략. (0) | 2023.06.26 |
---|---|
boj 23326 번 문제를 통해 접하게된 원형 배열에서의 인덱스 표시에 관하여. curr=(curr+tmp-1)% N +1; 형태의 코드에 대해 (0) | 2023.06.26 |
boj 7662번 문제를 통해 주의해야 하는 부분에 대한 배움. 각각의 테스트 케이스가 있는 문제는 컨테이너 선언 위치를 주의할것. (0) | 2023.06.23 |
boj 19583번 문제를 통해 접하게 된 cin.eof()과 이것의 활용 방법. (0) | 2023.06.22 |
boj 11478번 문제를 통해 접하게 된 substr() 함수와 그 함수의 활용에 관하여. (0) | 2023.06.22 |
Comments, Trackbacks