1. 程式人生 > >STL - map

STL - map

包含 ins 基本 aps 範圍 素數 指向 自動 style

Map

/*pair

  1. pair類型的定義和初始化
  • pair <T1,T2>p; // 定義了一個空的pair對象p
  • pair<T1,T2>p(v1,v2); //定義了包含初始值為v1和v2的pair對象p
  • make_pair(v1,v2);//以v1和v2值創建一個新的pair對象
  1. 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