# 난수 발생
■ rand()
[0, RAND_MAX] 범위의 정수 난수를 돌려준다. rand와 RAND_MAX는 모두 <cstdlib>에 정의 되어 있다.
# map 컨테이너 관련 연산
■ pair<K, V>
객체들이 값의 쌍을 담는 단순한 타입이다. 이러한 데이터의 값을 액세스 하려면, first와 second라는 이름을 사용한다
■ map<K, V>
K라는 키 타입과 V라는 값 타입을 갖는 연관 배열. map의 요소들은 키-값 쌍으로 이루어져 있으며, 키-값 쌍은 키를 사용하여
효과적으로 요소들을 액세스 할 수 있도록 키 순으로 정렬되어있다. map에 대한 반복자는 양방향성을 갖는다.
map 반복자를 정렬하면 pair<const K, V>의 값을 얻을 수 있다.
■ map<K, V> m
새로운 빈 map을 생성한다. 이 map은 const K 타입의 키와 V 타입의 값을 가진다.
■ map<K, V> m(cmp)
새로운 빈 map을 생성한다. 이 map은 const K 타입의 키와 V 타입의 값을 가지며, 동작함수 cmp를 사용하여 요소들의
순서를 결정한다.
■ m[k]
K 타입의 키 k를 사용하여 map을 인덱싱하고, V타입의 lvalue를 리턴한다. 만약 주어진 키에 대한 요소가 없다면, 새로운
값지정-초기화된 요소가 생성되어, 이 키를 갖고 map에 삽입된다. []를 사용하여 map에 접근하면 새로운 요소를 생성할 수
있으므로, const map에서는 []가 허용되지 않는다.
※ 값지정-초기화(Value-initalization)
존재하지 않는 map요소를 액세스 하면 V()의 값으로 요소를 생성한다. 이 때, V는 map에 저장된 값의 타입이다.
이러한 표현식을 값지정-초기화 된다고 말한다.
■ m.begin(), m.end()
map의 요소를 접근할 때 사용하는 반복자를 리턴한다. 이 반복자를 역참조 하면 값을 얻는 것이 아니라, 키-값 쌍을 얻게된다.
■ m.find(k)
키 k에 대한 요소를 가리키는 반복자를 리턴하거나, 해당 요소가 존재하지 않는 경우 m.end()를 리턴한다.
■ map<K, V>와 연관된 반복자 p에 대해서는 다음과 같은 것들이 적용된다.
p->first : const K 타입의 lvalue를 얻을 수 있다. 이 lvalue는 p가 가리키는 요소에 대한 키 입니다.
p->second : V 타입의 lvalue를 얻을 수 있다. 이 lvalue는 p가 가리키는 요소의 값 부분에 해당된다.
'프로그래밍 > STL' 카테고리의 다른 글
C++,STL :: vector 클래스 디자인 (0) | 2010.09.12 |
---|---|
C++,STL :: 제네릭 함수(generic function) 작성 (0) | 2010.09.05 |
C++,STL :: map을 이용한 문장 생성 (0) | 2010.09.04 |
C++,STL :: 알고리즘 컨테이너, 반복자 연산 (0) | 2010.09.03 |
C++,STL :: 연관 컨테이너를 이용한 단어 갯수 세기(교차참조 테이블) (0) | 2010.09.01 |