C++map 용법 총화(정리)

5278 단어 C++map사용법
1,지도 안내
map 는 STL 의 관련 용기 로 일대일 hash 를 제공 합 니 다.
첫 번 째 는 키워드(key)라 고 할 수 있 습 니 다.모든 키 워드 는 map 에서 한 번 만 나타 날 수 있 습 니 다.두 번 째 는 이 키워드 의 값(value)이 라 고 할 수 있 습 니 다.
map 는 템 플 릿(범 형)방식 으로 이 루어 집 니 다.사용자 가 정의 한 데이터 형식 을 포함 하여 임의의 형식의 데 이 터 를 저장 할 수 있 습 니 다.Map 은 주로 자료 1 대 1 맵(one-to-one)의 정 r 에 사용 되 는데,map 아세틸렌 네온 디 는 부 을 수록 12562℃,매 수 된 연근 을 가지 고 있 으 며,이 나 무 는 데이터 에 대해 자동 으로 정렬 하 는 기능 을 가진다.map 내부 의 모든 데 이 터 는 질서 가 있 고 뒤에서 우 리 는 질서 있 는 장점 을 볼 수 있 습 니 다.예 를 들 어 한 반 에서 모든 학생 의 학 번 과 그의 이름 은 일대일 매 핑 의 관계 가 존재 한다.

2,map 의 기능
자동 키 만 들 기 - value 의 대응.key 와 value 는 사용자 정의 형식 을 포함 하여 원 하 는 형식 일 수 있 습 니 다.
3,사용 map
맵 을 사용 하려 면 맵 클래스 가 있 는 헤더 파일 을 포함해 야 합 니 다
#include   //STL 헤더 파일 에 확장자 가 없습니다.h
map 대상 은 템 플 릿 클래스 입 니 다.키워드 와 저장 대상 두 개의 템 플 릿 매개 변수 가 필요 합 니 다.
std:map personnel;
이렇게 하면 int 를 색인 으로 하고 관련 된 string 을 가리 키 는 지침 을 정의 합 니 다.
사용 편 의 를 위해 템 플 릿 류 에 대해 유형 정 의 를 내 릴 수 있 습 니 다.
typedef map UDT_MAP_INT_CSTRING;
UDT_MAP_INT_CSTRING enumMap;
4,map 의 구조 함수
map 는 모두 6 개의 구조 함 수 를 제공 합 니 다.이것 은 메모리 분배 기 와 관련 된 것 입 니 다.표 시 를 생략 하고 아래 에서 우 리 는 map 의 구조 방법 을 접 할 것 입 니 다.여기 서 말 하고 자 하 는 것 은 다음 과 같은 방법 으로 map 를 구성 하 는 것 입 니 다.
map mapStudent;
5,요소 삽입

//     map  
map<int, string> mapStudent;
 
//      insert   pair
mapStudent.insert(pair<int, string>(000, "student_zero"));
 
//      insert    value_type  
mapStudent.insert(map<int, string>::value_type(001, "student_one"));
 
//      "array"    
mapStudent[123] = "student_first";
mapStudent[456] = "student_second";
상기 세 가지 용법 은 모두 데이터 의 삽입 을 실현 할 수 있 지만 차이 가 있 습 니 다.물론 첫 번 째 와 두 번 째 는 효과 적 으로 똑 같이 완성 되 었 습 니 다.insert 함수 로 데 이 터 를 삽입 하여 데이터 에 있 습 니 다. 집합 과 관련 된 유일한 개념 을 삽입 합 니 다.즉,map 에 이 키워드 가 있 을 때 insert 작업 은 데 이 터 를 삽입 할 수 없 지만 배열 방식 으로 다 릅 니 다.이전 키 워드 를 덮어 쓸 수 있 습 니 다. 대응 하 는 값 은 프로그램 으로 다음 과 같이 설명 합 니 다.

mapStudent.insert(map<int, string>::value_type (001, "student_one"));
 
mapStudent.insert(map<int, string>::value_type (001, "student_two"));
위의 두 문장 이 실 행 된 후 맵 에서 001 이라는 키워드 에 대응 하 는 값 은"student"입 니 다."one",두 번 째 문 구 는 효력 이 발생 하지 않 았 습 니 다.그러면 insert 문 구 를 성공 적 으로 삽입 하 는 지 어떻게 알 수 있 는 지 에 관 한 문제 입 니 다.pair 로 삽입 성공 여 부 를 얻 을 수 있 습 니 다.프로그램 은 다음 과 같 습 니 다.

//     ,    pair  
pair<iterator,bool> insert (const value_type& val);
 
pair<map<int, string>::iterator, bool> Insert_Pair;
 
Insert_Pair = mapStudent.insert(map<int, string>::value_type (001, "student_one"));
 
if(!Insert_Pair.second)
  cout << ""Error insert new element" << endl;
우 리 는 pair 의 두 번 째 변 수 를 통 해 삽입 성공 여 부 를 알 수 있 습 니 다.첫 번 째 변 수 는 map 의 교체 기 를 되 돌려 줍 니 다.삽입 에 성공 하면 InsertPair.second 는 true 여야 합 니 다.그렇지 않 으 면 false 입 니 다.
6, 원소 찾기
찾 은 키 가 나타 날 때 데이터 가 있 는 대상 의 위 치 를 되 돌려 줍 니 다.]있 으 면 iter 와 end 함수 의 값 을 되 돌려 줍 니 다.

// find                     map::end()  
iter = mapStudent.find("123");
 
if(iter != mapStudent.end())
    cout<<"Find, the value is"<<iter->second<<endl;
else
  cout<<"Do not Find"<<endl;
7, h 요소 제거 및 비우 기

//   h 
iter = mapStudent.find("123");
mapStudent.erase(iter);
 
//    h 
int n = mapStudent.erase("123"); //  h    1, t  0
 
//      h  :    map  
mapStudent.erase(mapStudent.begin(), mapStudent.end());
//   mapStudent.clear()
8,맵 의 크기
맵 에 데 이 터 를 삽입 하 였 습 니 다.현재 얼마나 많은 데 이 터 를 삽입 하 였 는 지 어떻게 압 니까?size 함수 로 사용 할 수 있 습 니 다.용법 은 다음 과 같 습 니 다.

int nSize = mapStudent.size();
 9,map 의 기본 조작 함수:
     C++ maps 는'키워드/값'을 포함 하 는 관련 용기 입 니 다.
     begin()         맵 머리 를 가리 키 는 교체 기 를 되 돌려 줍 니 다.
     clear()        모든 요소 삭제
     count()         지정 한 요소 가 나타 난 횟수 를 되 돌려 줍 니 다.
     empty()         맵 이 비어 있 으 면 true 로 돌아 갑 니 다.
     end()           맵 의 끝 을 가리 키 는 교체 기 를 되 돌려 줍 니 다.
     equal_range()   특수 항목 의 교체 기 를 되 돌려 줍 니 다.
     erase()         요소 삭제
     find()          원소 찾기
     get_allocator() 맵 설정 기 되 돌리 기
     insert()        요소 삽입
     key_comp()      비교 요소 key 의 함 수 를 되 돌려 줍 니 다.
     lower_bound()   키 값 되 돌리 기>=주어진 요소 의 첫 번 째 위치
     max_size()      수용 할 수 있 는 최대 원소 개 수 를 되 돌려 줍 니 다.
     rbegin()        맵 의 끝 을 가리 키 는 역방향 교체 기 를 되 돌려 줍 니 다.
     rend()          맵 의 머리 를 가리 키 는 역방향 교체 기 를 되 돌려 줍 니 다.
     size()          맵 에 있 는 요소 의 개 수 를 되 돌려 줍 니 다.
     swap()           맵 두 개 교환
     upper_bound()    키>주어진 요소 의 첫 번 째 위 치 를 되 돌려 줍 니 다.
     value_comp()     비교 요소 value 의 함 수 를 되 돌려 줍 니 다.
C++map 용법 총화(정리)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C++map 용법 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기