map使用總結

2021-05-14 09:17:41 字數 613 閱讀 8960

之前在使用map類的過程中,模板引數的後兩項<,,traits,allocator>均是採用採用預設情況。

但是預設情況下如果關鍵字為:string類的,則將會出現錯誤。

錯誤的原因就是預設的traits為less,而less的實現為:

template

struct less : binary_function<_ty, _ty, bool>

};string類沒有過載運算子《號,所以導致在 (_x < _y)處出錯。

解決方案:

1)定義專屬於string類的less

**為:

template

struct stringcmp : public binary_function

};stringcmp,跟less一樣,均是派生於binary_function。

由我們自己來使用兩個string類的比較。

2)自string派生我們自己的mystring類,在mystring類中,過載操作符 < ,

原理同樣是處理less中 (_x < _y)的小於號。

繼續貼**:

兩個方法,顯然方法1)比較簡單。

map使用總結

int main return0 map內部使用的是一種紅黑樹,會按照從小到大的順序自動排序 map常用函式 find find key 返回鍵是key的用社的迭代器 erase 刪除單個元素 mp.erase it it為需要刪除元素的迭代器 mp.erase key key為要刪除元素的鍵值 m...

java中 map使用總結

工作中經常遇到map,由於map和json 裝換很方便,使用的也很多,今天就系統的學習了一下。之前還遇到過map 的乙個坑,稍後整理 最快最高效的學習方法,就是講給別人聽,於是我就關閉那些書籍來講給自己聽。map 是包含key value鍵值對儲存的集合,一般我們不直接使用map,而是使用map 的...

C 中map的使用總結

一 定義 mapmap 宣告乙個容器 map.size 返回 map中元素的個數 map iterator it 宣告乙個 迭代器二 插入資料 插入資料之前先說一下pair 和 make pair 的用法pair是乙個結構體,有 first 和second 兩個域,可以直接訪問 1 string k...