C++容器(關連式容器總結)

關連式容器內部的元素都是排好序的,有以下四種

set:排好序的集合,不允許有相同的元素

multiset:排好序的集合,允許有相同元素

map:每個元素都分爲關鍵字和值兩部分,容器中的元素是按關鍵字排序的,不允許有多個元素的關鍵字相同

multimap:和map類似,差別在於元素的關鍵字可以相同

 

不能修改set或multiset容器中元素的值,因爲元素被修改後,容器並不會自動重新調整順序,於是容器中的有序性就會被破壞,在在其上進行查找等操作就會得到錯誤的結果。因此,如果要修改set或multiset容器中某個元素的值,正確的做法是先刪除該元素,再插入新元素。

同理,也不能修改map和multimap容器中的關鍵字

關聯容器內部的元素或關鍵字之間比較大小可以用    運算符,也可以用自定義的比較器。因爲有序,所以在關聯容器上進行查找的速度較快。

使用關聯容器的目的也就在於快速查找。當一個元素被插入關聯容器時,該元素會和已有的元素進行比較,最終被插入一個合適的位置。

關聯容器一般是用平衡二叉樹實現的。

除了所有容器共有的成員函數外,關聯容器還具有以下成員函數:

  • find:查找某個值。
  • lower_bound:查找某個下界。
  • upper_bound:查找某個上界。
  • equal_range:同時查找上界和下界。
  • count:計算等於某個值的元素個數。
  • insert:插人一個元素或一個區間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章