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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Effective_STL 学习笔记(十九) 了解相等和等价的区别

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Effective_STL 学习笔记(十九) 了解相等和等价的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

find 算法和 set 的 insert 成員函數是很多必須判斷兩個值是否相同的函數代表,

find 對 “相同” 的定義是相等,基于 operator== ,

set::insert 對 “相同” 的定義是等價,通常基于 operator< 。

?

操作上來說,相等的概念基于 operator== 的,如果表達式 “x == y” 返回true,x和y有相等的值,

x 和 y 相等并不意味著所有它們的成員有相等的值

?

等價是基于在一個有序區間中對象值的相對位置。等價一般在每種關聯容器(set、multiset、map 和 multimap)的一部分——排序方面有意義,

兩個對象 x 和 y 如果在關聯容器 c 的排列順序中沒有哪個排在另一個之前,那么它們關于 c 使用的排列順序有等價的值

對于 set<Widget> 的默認比較函數是 less<Widget>,operator<

1   !( w1 < w2 ) && !( w2 < w1 )  // w1<w2非真且w2<w1非真

意義在于: 兩個值沒有哪個在另一個之前(關于某個排序標準),那么它們等價

?

一般情況下,用于關聯容器的比較函數是用戶定義的判斷式每個關聯容器通過 key_comp成員函數來訪問排序判斷式:

1   !c.key_comp()(x, y) && !c.key_comp()(y, x);

c.key_comp() 返回一個函數,并把 x 和 y 作為實參

?

總之,通過只定義一個比較函數并使用等價作為兩個值 “相等” 的意義的仲裁者,標準關聯容器避開了很多會由允許兩個比較函數而引發的困難。

?

轉載于:https://www.cnblogs.com/kidycharon/p/10019135.html

總結

以上是生活随笔為你收集整理的Effective_STL 学习笔记(十九) 了解相等和等价的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。