STL中的map multimap小結

2022-07-06 17:42:08 字數 1961 閱讀 8262

(1)使用map/multimap之前必須包含標頭檔案:#include並且和所有的關聯式容器一樣,map/multimap通常以平衡二叉樹來完成

(2)namespace std

第乙個template引數被當作元素的key,第二個當作元素的value。key/value必須具備assignable和copyable性質,對排序而言key必須是comparable。第三個引數為排序準則,和map/multimap一樣這個排序準則必須是strict weak ordering的,元素的次序由他們的key決定,和value無關,map/multimap根據元素的key自動對元素進行排序。

(3)map/multimap的操作函式:

map c 產生乙個空map/multimap

map c(op) 以op為排序準則產生乙個空map/multimap

map c1(c2) 產生某乙個map/multimap的副本

map c(beg, end) 以區間[beg, end)內的元素產生乙個map/multimap

map c(beg, end, op) 以op為排序準則,以區間[beg, end)內的元素產生乙個map/multimap

c.~map() 銷毀所有元素,釋放記憶體

其中map可為下列形式:map、map、multimap、multimapc.size() 返回當前的元素數量

c.empty() 判斷c是否為空

c.max_size() 返回可容納的元素最大數值

c1 compare c2 compare可為==,!=,<,>,<=和》=

c.count(elem) 返回「鍵值等於key」的元素個數

c.find(elem) 返回「鍵值等於key」的第乙個元素的迭代器,如果找不到就返回end()

c.lower_bound(key) 返回「鍵值為key」之元素的第乙個可安插位置,也就是「鍵值》=key」的第乙個元素位置

c.upper_bound(key) 返回「鍵值為key」之元素的最後乙個可安插位置,也就是「鍵值》key」的第乙個元素位置

c.equal_range(key) 返回「鍵值為key」之元素的第乙個和最後乙個可安插位置,也就是「鍵值==key」的元素區間

lower_bound()、upper_bound()和equal_range()行為與set相應的函式十分相似,唯一不同的是:元素是乙個key/value pair。

c1 = c2 將c2全部元素賦值給c1

c1.swap(c2) 將c1和c2元素互換

c.begin() 返回乙個雙向訪問迭代器(將key視為常數),指向第乙個元素

c.end() 返回乙個雙向訪問迭代器(將key視為常數),指向最後元素的下乙個位置

c.rbegin() 返回乙個逆向迭代器,指向逆向迭代的第乙個元素

c.rend() 返回乙個逆向迭代器,指向逆向迭代的最後元素的下乙個位置

這裡的元素是乙個key/value pair(pair)。

c.insert(elem) 插入乙個elem副本並返回新元素的位置

c.insert(it, elem) 安插elem副本返回新元素的位置(it是乙個提示指出安插操作的搜尋起點)

c.insert(beg, end) 插入區間[beg, end)內的所有元素副本,無返回值

c.erase(elem) 移除「value與elem相等」的所有元素,返回被移除元素的個數

c.erase(it) 移除it位置上的元素,無返回

c.erase(beg, end) 移除[beg, end)區間內的所有元素,無返回

c.clear() 將容器清空

這裡的元素是乙個key/value pair(pair)。

STL中的型別

一 常整數對映為型別 alexandrescu提出的簡單而有用的template template struct int2type enum template class niftycontainer private void dosomething t pobj,int2type t pnewob...

STL中vector list deque的區別

向量 相當於乙個陣列 在記憶體中分配一塊連續的記憶體空間進行儲存。支援不指定vector大小的儲存。stl內部實現時,首先分配乙個非常大的記憶體空間預備進行儲存,即capacituy 函式返回的大小,當超過此分配的空間時再整體重新放分配一塊記憶體儲存,這給人以vector可以不指定vector即乙個...

STL中的next permutation函式

在c 的標準函式庫stl中,next permutation 函式用於求數列的全排列。函式原型 template bool next permutation bidirectionaliterator first,bidirectionaliterator last template bool ne...