(C++) 컨테이너【map】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/15
이번에는 map에 대해서 설명하겠습니다. 이것을 사용하려면 map이라는 헤더 파일을 포함해야 합니다. map은 조금 특수한 컨테이너에서 상당히 사용 빈도가 높은 컨테이너입니다. map은 있는 키 값과 함께 컨테이너에 넣고 그 키를 다시 삭제하거나 변경할 수 있는 컨테이너 입니다. 또한 요소를 추가 할 때, 키를 기반을 자동으로 정렬됩니다.
다음 코드를 봐주세요.
이걸 실행시키면 이렇게 됩니다.

우선, map의 선언 내용에 대해서 입니다만, 인수를 두 개 지정합니다. 첫째는 키, 둘째는 그 값입니다. 키는 나중에 컨테니어를 검색 할 때 사용될 것입니다. 위의 코드는 키에 int 형 값에 char*로 설정 지정합니다.
요소를 추가 할 때 insert 함수를 사용합니다. 그 인수의 지정에는 다음과 같은 세 가지가 있습니다.
- map<키_형식, 그의_값_형식>::value_type(키, 값);
- pair<키_형식, 그의_값_형식>(키,값);
- make_pair(키, 값);
그럼, 각 요소에 액세스하는 방법입니다만, 기본적으로는 반복자를 사용합니다. 해당 반복자를 취득 하려면
키의 값은
(*반복자_이름).first
실제 값은
(*반복자_이름).second
혹은
키의 값은
반복자_이름->first
실제 값은
반복자_이름->second
이런 방식으로 취득해옵니다. 또 포인터처럼 사용할 수 있습니다. 당연히 값의 변경도 가능합니다. 인덱스에 대한 액세스는 기본적으로 불가능하지만, 기 값을 인덱스로 취급하는 경우에는 액세스 할 수 있습니다. 예를 들어
test[3];
이라고 쓰면, 컨테이너의 키가 3이 되어있는 요소의 값을 가져오게 됩니다. 이제 각 요소에 액세스하는 방법도 이해할 수 있겠지요? 기타 함수의 내용은 지금까지 공부한 컨테이너와 같습니다. 하지만 자주 사용하는 기능으로는 find 함수가 있겠습니다. 이 인수에는 키 값을 지정합니다. 만약 그 키가 있으면 짝이있는 요소의 값을 반환합니다. 없으면 그 컨테이너의 end() 반복자를 돌려줍니다. 마지막 두 줄은 검색 후 발견된 키 요소의 값을 실제로 볼 수 있습니다.
map 요소의 제거는 erase 함수를 사용합니다. 이 부분 함수는 vector 같은 것들과 동일합니다. 이 컨테이너는 저도 자주 쓰니 꼭 기억하세요.
다음은 set에 대해서 설명하겠습니다.
'공부 > C/C++' 카테고리의 다른 글
(C++) 클래스 내의 static 지정자 (0) | 2014.08.07 |
---|---|
(C++) 컨테이너【set】 (0) | 2014.04.04 |
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
(C++) 컨테이너【stack】 (0) | 2014.04.04 |
(C++) 컨테이너 【deque】 (0) | 2014.04.03 |