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};
map的迭代器
不可以根據map的迭代器改變節點的鍵值,但是可以通過map的迭代器改變節點的實值
因此,map iterators既不是一種constant iterators,也不是一種