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


map에 자료를 추가할 때

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

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

  • 2016년 02월 23일에 작성됨

조회수 190


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

  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close