find方法的「相同」的定義是相等,是以operator
==為基礎的,
set::insert的「相同」的定時則是等價,是以operator
<
(less)為基礎的,即
if(!(v1 < v2) and !(v2 < v1))
關聯容器的等價即為:
!(c.key_comp()(x,y)) and (!(c.key_comp()(y,x)))
舉個例子:
//compare 型別
內部仿函式不區分大小寫比較
setciss;ciss.insert("person");//succ
ciss.insert("person"); //fail,不會被插入ciss
if(ciss.find(「person」) != ciss.end())
if(find(ciss.begin(),ciss.end(),"person") != ciss.end())
優先使用關聯容器自己的比較函式(一般都是less函式)
struct stringptrless}using stringptrset = set;
stringptrset ss;
using iter = stringptrset::const_iterator;
for(iter i = ss.begin(); i != ss.end(); i++)
容器 順序容器 關聯容器
容器分為 順序容器 關聯容器,示意圖如下 順序容器 只儲存值,關聯容器 key value形式,關聯容器的乙個元素包含兩個部分 鍵值對 key value 有序容器 底層實現為紅黑樹,即容器內的key是有序的 無序容器 底層實現為hash table,雜湊表 區別 順序容器通過元素在容器中的位置順序...
STL 關聯容器
1 關聯容器與順序容器的本質區別 關聯容器通過鍵 key 儲存和讀取元素,而順序容器則通過元素在容器中的位置順序儲存和訪問元素。2 關聯容器的型別 map set multimap multiset 3 pair型別 pair型別的比較 p1 p1 p2 如果兩個pair物件的first和secon...
c 關聯容器
1.map建構函式 mapm 普通初始化 mapm m2 複製初始化法 mapm b,e 另乙個map物件的迭代器初始化法 注意 1 鍵值型別必須定義 操作符號,資料訪問時需要呼叫。2 m aaa 下表訪問方式導致的結果是,若鍵對應的值不存在,則插入該鍵值對應的預設值。2.map插入操作 m.ins...