老衛帶你學 C 中map與pair的區別

2021-09-24 15:50:12 字數 1581 閱讀 6779

1、pair的型別:pair是一種模版型別。每個pair 可以儲存兩個值。這兩種值的型別沒有限制,也可以將自己寫的類放進去。

2、pair 應用:如果乙個函式有兩個返回值的話,如果是相同型別,就可以用陣列返回,如果是不同型別,兩個屬性的話,就可以用pair 進行操作,有多個屬性的時候 ,可以使用tuple。

3、生成方法2種:

pairp (5,6);

pair p1= make_pair(5,6);

pair p2 ("aa",5.0);

pair p3 = make_pair("aa",5.0);

二、map簡介

map可以當做乙個容器(裝載具有一定格式的資料);pair可以理解為元素(放入到容器的的每個個體),pair並沒有單獨行動的典型用法,正常都是配合map來使用(即把pair這個元素插入到map這個容器裡面)。

pair與map怎樣聯絡起來:

通過map的insert()可以把乙個pair物件作為map 的引數,如map1.insert(pair1);

map的相應的介面說明:

begin() 返回指向map頭部的迭代器

clear() 刪除所有元素

count() 返回指定元素出現的次數

empty() 如果map為空則返回true

end() 返回指向map末尾的迭代器

equal_range() 返回特殊條目的迭代器對

erase() 刪除乙個元素

find() 查詢乙個元素

get_allocator() 返回map的配置器

insert() 插入元素

key_comp() 返回比較元素key的函式

lower_bound() 返回鍵值》=給定元素的第乙個位置

max_size() 返回可以容納的最大元素個數

rbegin() 返回乙個指向map尾部的逆向迭代器

rend() 返回乙個指向map頭部的逆向迭代器

size() 返回map中元素的個數

swap() 交換兩個map

upper_bound() 返回鍵值》給定元素的第乙個位置

value_comp() 返回比較元素value的函式

三、map按value排序

我們知道c++ stl中的map是以key排序的。

int main()

那如果我要以value進行排序呢?

方案:將map的key和value以pair的形式裝到vector中,對vector進行排序。

int main()

); for (auto it = map_b.begin(); it != map_b.end(); it++)

cout

<< it->first << ':'

<< it->second << '\n';

return

0;}

老衛帶你學 numpy集合運算

集合運算 2018 11 11 1.np.unique 唯一值 它用幹找出陣列中的唯一值並返回已排序的結果 names np.array bob joe will bob np.unique names array bob will bob joe dtype sorted set names 等價...

老衛帶你學 python裝飾器

python的裝飾器,就是在不修改原有 的基礎上,增加額外的功能 假如我們原有乙個函式,這個函式它的功能是尋找1 n範圍內的偶數 def func for i in range 1000 if i 2 0 print i r func 此時列印如下 988990 992994 996998.那如果我...

老衛帶你學 PYTHON之WITH語句原理

我們看乙個with處理檔案操作的例項 with open etc passwd as f for line in f print line 這段 的作用 開啟乙個檔案,如果一切正常,把檔案物件賦值給f,然後用迭代器遍歷檔案中每一行,當完成時,關閉檔案 而無論在這段 的任何地方,如果發生異常,此時檔案...