map::insert()랑 []중에 어느걸 쓰는게 맞는건가요?
조회수 12351회
map에 자료를 추가할 때
map[key] = value
map.insert(std::make_pair(key, value))
이 두가지 방법이 있는 걸로 아는데 둘이 어떤 차이가 있고, 어느걸 쓰는 게 맞는건지(표준적인?) 알고싶습니다.
1 답변
-
map[key] = value;
로는key
에 해당하는value
가 새로 만들어진건지, 기존 값이 바뀐건지 알아낼 방법이 없습니다.map::insert()
에서는 둘을 구분할 수 있고, 사용법은 다음과 같습니다int main () { std::map<char,int> mymap; // first insert function version (single parameter): mymap.insert ( std::pair<char,int>('a',100) ); mymap.insert ( std::pair<char,int>('z',200) ); std::pair<std::map<char,int>::iterator,bool> ret; ret = mymap.insert ( std::pair<char,int>('z',500) ); if (ret.second==false) { std::cout << "element 'z' already existed"; std::cout << " with a value of " << ret.first->second << '\n'; } }
코드출처 : std::map::insert
댓글 입력