STL - map
Map
/*pair
- pair類型的定義和初始化
- pair <T1,T2>p; // 定義了一個空的pair對象p
- pair<T1,T2>p(v1,v2); //定義了包含初始值為v1和v2的pair對象p
- make_pair(v1,v2);//以v1和v2值創建一個新的pair對象
- pair對象的一些操作
- p.first
- p.second
pair<int,string> p(0, “Hello”);
printf(“%d %s\n”,p.first,p.second.c_str());
*/
1.map最基本的構造函數:
map<string , int > mapstring; map<int ,string > mapint;
map<string,char>mapstring; map<char, string>mapchar;
map<char,int>mapchar; map<int,char>mapint;
2.map添加數據
map<int ,string>maplive;
(1) maplive.insert(pair<int string>(102, “active”));
(2) maplive.insert(map<int,string> : :value_type(321, “hai”);
(3) maplive[112] = “April”; //map中最簡單最常用的插添加;
3.map中元素的查找:
find()函數返回一個叠代器指向鍵值為key的元素,如果沒找到就返回指向map尾部的叠代器。
map<int,string> : : iterator l_it;;
l_it = maplive.find(112);
if(l_it == maplive.end())
printf(“we do not find 112”);
else
printf(“we find 112”);
4.map中元素的刪除
如果刪除112;
map<int,string> :: iterator 1_it;;
l_it = maplive.find(112);
if(l_it == maplive.end())
printf(“we do not find 112”);
else
maplive.erase(l_it); //刪除112
5.容量查詢
// 查詢map是否為空
bool empty();
// 查詢map中鍵值對的數量
size_t size();
// 查詢map所能包含的最大鍵值對數量,和系統和應用庫有關。
// 此外,這並不意味著用戶一定可以存這麽多,很可能還沒達到就已經開辟內存失敗了
size_t max_size();
// 查詢關鍵字為key的元素的個數,在map裏結果非0即1
size_t count( const Key& key ) const;
6.刪除
// 刪除叠代器指向位置的鍵值對,並返回一個指向下一元素的叠代器
iterator erase( iterator pos )
// 刪除一定範圍內的元素,並返回一個指向下一元素的叠代器
iterator erase( const_iterator first, const_iterator last );
// 根據Key來進行刪除, 返回刪除的元素數量,在map裏結果非0即1
size_t erase( const key_type& key );
// 清空map,清空後的size為0
void clear();
7.交換
//就是兩個map的內容交換
void swap( map & other);
8.的基本操作函數
begin() 返回指向map頭部的叠代器
clear() 刪除所有元素
count() 返回指定元素出現的次數
empty() 如果map為空則返回true
end() 返回指向map末尾的叠代器
erase()
刪除一個元素
find() 查找一個元素
insert() 插入元素
key_comp() 返回比較元素key的函數
size() 返回map中元素的個數
swap() 交換兩個map
9.功能
(1).自動建立Key – value的對應
(2).快速插入Key – Value 記錄
(3).快速刪除記錄
(4).根據Key修改value記錄
(5).遍歷所有記錄
10.應用
代替Hash
STL - map