日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL中 map 和 multimap

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL中 map 和 multimap 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 所在頭文件<map>. 命名空間std, 聲明如下:

1 namespace std{ 2 template <class Key,class T, 3 class Compare = less<Key>, 4 class Allocator = allocator<pair<const Key,T> > > 5 class map; 6 template <class Key,class T, 7 class Compare = less<Key>, 8 class Allocator = allocator<pair<const Key,T> > > 9 class multimap; 10 }

  - key/value必須具備 assignable+copyable; ?key 必須comparable

  - 元素的次序由key決定, 與value無關.

  - 可以把set/multiset視為特殊的map/multimap.?

  - 也是使用紅黑樹實現(xiàn)的.

2. map/multimap的構造/析構

1 map c; 2 map c(op); 3 map c1(c2); 4 map c(beg,end); 5 map c(beg,end,op); 6 c.~map();

3. 非變動性操作

1 c.size(); 2 c.empty(); 3 c.max_size(); 4 各類算術運算

4. 查詢操作

count(key); find(key); lower_bound(key); upper_bound(key);
equal_range(key)

5. map 和multimap不提供元素直接存取, 因此元素存取通常由迭代器進行 , map提供 []操作符, 可以直接存取.

  - 在map/multimap的定義中可以看到 key是const的,保證了不會被破壞key, 也不會破壞已經(jīng)排好序的元素.?

  - 如果要移除元素, 只能用它提供的成員函數(shù).

  - find()只能針對key查找, 查找value可以用find_if() 或者直接遍歷.

6. 使用value_type避免隱式類型轉換

  -??coll.insert(std::map<std::string,float>::value_type("roger","21"));? ?value_type 是容器本身提供的類型定義.?

7. pair<>

  -??coll.insert(std::pair<std::string,float>("roger",21));?

8. make_pair()算法函數(shù)

  -??coll.insert(std::make_pair("roger",21));?

轉載于:https://www.cnblogs.com/roger9567/p/4889906.html

總結

以上是生活随笔為你收集整理的STL中 map 和 multimap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。