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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

STL中“大”、“小”和“相等”的概念

發布時間:2025/3/12 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL中“大”、“小”和“相等”的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STL 中關聯容器內部的元素是排序的。STL 中的許多算法也涉及排序、查找。這些容器和算法都需要對元素進行比較,有的比較是否相等,有的比較元素大小。

在 STL 中,默認情況下,比較大小是通過<運算符進行的,和>運算符無關。在STL中提到“大”、“小”的概念時,以下三個說法是等價的:

x 比 y 小。表達式x<y為真。y 比 x 大。

注意:y比x大意味著x<y為真,而不是y>x為真。y>x的結果如何并不重要,甚至y>x是沒定義的都沒有關系。

在 STL 中,x和y相等也往往不等價于xy為真。對于在未排序的區間上進行的算法,如順序查找算法 find,查找過程中比較兩個元素是否相等用的是運算符;但是對于在排好序的區間上進行查找、合并等操作的算法來說,x和y相等是與x<y和y<x同時為假等價的,與運算符無關??瓷先<y和y<x同時為假就應該和xy為真等價,其實不然。例如下面的 class A:

class A {int v; public:bool operator< (const A & a)const {return false;} };

可以看到,對任意兩個類 A 的對象 x、y,x<y和y<x都是為假的。也就是說,對 STL 的關聯容器和許多算法來說,任意兩個類 A 的對象都是相等的,這與==運算符的行為無關。

使用 STL 中的關聯容器和許多算法時,往往需要對<運算符進行適當的重載,使得這些容器和算法可以用<運算符對所操作的元素進行比較。最好將<運算符重載為全局函數,因為在重載為成員函數時,在有些編譯器上會出錯(由其 STL 源代碼的寫法導致)。

總結

以上是生活随笔為你收集整理的STL中“大”、“小”和“相等”的概念的全部內容,希望文章能夠幫你解決所遇到的問題。

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