multimap的介紹及使用

2021-10-06 14:33:20 字數 2603 閱讀 8383

1、multimap是關聯式容器,它按特定的次序(按照key來比較)儲存由鍵key和值value組合而成的元素,多個鍵值對之間的key可以重複

2、在multimap中,鍵值key通常用於排序和唯一標識元素,值value中儲存與鍵key關聯的內容。

3、multimap按照指定的嚴格弱排序對key進行排序

4、multimap中通過鍵值訪問單個元素比unordered_multimap容器慢,使用迭代器直接遍歷multimap的元素可以得到關於key有序的序列

5、multimap的底層通常是平衡二叉搜尋樹(紅黑樹)

6、multimap和map的唯一區別是multimap中的key可以重複,而map的key是唯一的

函式宣告

功能簡介

explicit multimap (const key_compare& comp =key_compare(), const allocator_type& alloc = allocator_type());

構造乙個空的multimap

template multimap (inputiterator first, inputiterator last,const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type());

用[first,last)區間中的元素構造multimap

multimap (const multimap& x);

multimap的拷貝構造

函式宣告

功能簡介

iterator begin ()

返回第乙個元素的位置

iterator end ()

返回最後乙個元素的下乙個位置

const_iterator begin () const

返回第乙個元素的const迭代器

const_iterator end () const

返回最後乙個元素下乙個位置的const迭代器

reverse_iterator rbegin()

返回第乙個元素位置的反向迭代器即rend

reverse_iterator rend()

返回最後乙個元素下乙個位置的反向迭代器即rbegin

const_reverse_iterator rbegin()const

返回第乙個元素位置的const反向迭代器即rend

const_reverse_iterator rend() const

返回最後一元素下乙個位置的反向迭代器即rbegin

函式宣告

功能簡介

bool empty ( ) const

檢測multimap中的元素是否為空,是返回true,否則返回false

size_type size() const

返回multimap中有效元素的個數

iterator insert (const value_type& val)

在multimap中插入鍵值對x,注意x是乙個鍵值對,返回值也是鍵值對:iterator代表新插入元素的位置,bool代表釋放插入成功

iterator insert (iterator position, const value_type& val);

template void insert (inputiterator first, inputiterator last);

在multimap中插入[first, last)區間中的元素

void erase ( iterator position )

刪除position位置上的元素

size_type erase ( const key_type& x )

刪除鍵值為x的元素

void erase ( iterator first, iterator last )

刪除[first, last)區間中的元素

void swap (multimap& mp )

交換兩個multimap中的元素

void clear ( )

將multimap中的元素清空

iterator find ( const key_type& x )

在multimap中插入key為x的元素,找到返回該元素的位置的迭代器,否則返回end

const_iterator find ( const key_type& x ) const

在multimap中插入key為x的元素,找到返回該元素的位置的const迭代器,否則返回cend

size_type count ( const key_type&x ) const

返回key為x的鍵值在multimap中的個數,注意multimap中key是唯一的,因此該函式的返回值要麼為0,要麼為1,因此也可以用該函式來檢測乙個key是否在multimap中

#include #include #include using namespace std;

int main()

cout << endl;

else

system("pause");

return 0;

}

STL裡的multimap使用簡介

在 使用 庫建立關聯容器 一文中,我們討論了標準庫中的 map 關聯容器。但那只是 map 容器的一部分。標準庫還定義了乙個 multimap 容器,它與 map 類似,所不同的是它允許重複鍵。這個屬性使得 multimap 比預想的要更有用 比如在 簿中相同的人可以有兩個以上 號碼,檔案系統中可以...

STL裡的multimap使用簡介

在 使用 庫建立關聯容器 一文中,我們討論了標準庫中的 map 關聯容器。但那只是 map 容器的一部分。標準庫還定義了乙個 multimap 容器,它與 map 類似,所不同的是它允許重複鍵。這個屬性使得 multimap 比預想的要更有用 比如在 簿中相同的人可以有兩個以上 號碼,檔案系統中可以...

C 的map與multimap的使用

map 鍵 值對的集合,可理解為關聯陣列。include include using namespace std int main 利用insert插入 while cin word erase刪除鍵為june的元素 word cnt.erase june 迭代遍歷 map const iterat...