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

map에 자료를 추가할 때

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

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

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.