map的特性
所有元素都会根据元素的键值自动被排序
map中的pair结构
map的所有元素类型都是pair,同时拥有实值(value)和键值(key)
pair的第一个元素视为键值,第二个元素视为实值
map不允许两个元素拥有相同的键值
下面是stl_pair.h中pair的定义:
//代码摘录与stl_pair.htemplate <class _T1, class _T2>struct pair {typedef _T1 first_type;typedef _T2 second_type;
_T1 first;_T2 second;pair() : first(_T1()), second(_T2()) {}pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}
#ifdef __STL_MEMBER_TEMPLATEStemplate <class _U1, class _U2>pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {}#endif};