map::insert()랑 []중에 어느걸 쓰는게 맞는건가요?

조회수 12328회

map에 자료를 추가할 때

  1. map[key] = value
  2. map.insert(std::make_pair(key, value))

이 두가지 방법이 있는 걸로 아는데 둘이 어떤 차이가 있고, 어느걸 쓰는 게 맞는건지(표준적인?) 알고싶습니다.

1 답변

  • 좋아요

    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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)