티스토리 뷰

카테고리 없음

std::map 주의

에어버스 2019. 7. 23. 16:17

std::map 주의

- 2행 처럼 insert() 에 직접 int 값을 적용을 사용하면 주석처럼 컴파일 에러가 나므로
4, 5행 처럼 { } 나 make_pair() 를 사용해야 한다.

- 7 ~12행 처럼 at() 를 사용할때 해당 키에 대한 값이 없으면 예외 발생하므로 예외처리 해줘야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
std::map<intint> mmap;
mmap.insert(01); // C2100 간접 참조가 잘목되었습니다. (xtree)
 
mmap.insert({ 12 }); 
mmap.insert(std::make_pair(23));
 
try {
    int bb = mmap.at(10); // 키에 대한 값이 없으면 예외발생 
}
catch (std::exception& e) {
    return;
}
cs

- [] 연산자를 사용하면 해당 키값을 못찾아도 예외발생하지 않는다. 해당 키가 없으면 키가 map에 추가되어 map size 가 증가한다.

- 값을 수정할때는 3행처럼 [] 연산자로 처리한다.

1
2
3
std::map<intint>* pmap = new std::map<intint>;
pmap->insert({ 12 }); //신규 추가
(*pmap)[1= 22// 수정
cs

- std::map.clear() 호출 시 예외발생하면 map.size() 값이 맞는지 확인한다. 32GB 값을 갖기도 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30