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同时为假等价的,与运算符无关。看上去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中“大”、“小”和“相等”的概念相关推荐

  1. C++中STL中的大、小、相等概念

    1.STL的大.小.相等概念 STL中关联容器内部的元素是排序的.STL中的许多算法也涉及排序.查找.这些容器和算法都需要对元素进行比较,有的比较是否相等,有的比较元素大小. 在STL中,默认情况下, ...

  2. 《变量》精髓:慢变量造就时代进步大趋势, 在慢变量中找到小趋势,能坚定我们前进的信心

    <变量>书中的精髓:慢变量造就时代进步大趋势, 在慢变量中找到小趋势,能坚定我们前进的信心 心理学上,有一个著名的实验,叫"看不见的大猩猩".这个实验是这样的:参加测试 ...

  3. c语言 100匹马 编程,编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...

    编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大.中.小各多少匹? 编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担, ...

  4. 大型机是微型计算机吗,计算机按规模分为巨、大、中、小、微型计算机,其发展趋势为()。A、巨型机B、大型机C、微型机D、巨型机...

    计算机按规模分为巨.大.中.小.微型计算机,其发展趋势为().A.巨型机B.大型机C.微型机D.巨型机 更多相关问题 有心理困扰的人是不正常的. [判断题]渔鼓类唱腔简朴,多带吟诵性.( ) [判断题 ...

  5. 【C语言基础练习】100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。

    100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担.试编写程序计算大.中.小马的数目. 1 #include<stdio.h> 2 int main() 3 { 4 i ...

  6. 医疗器械中的大C中C小C

    C形臂分为大C.中C和小C,由C型的机架,产生X射线的球管,采集图像的影像增强器和CCD摄像机,以及图像处理的工作站组成.其控制方式主要有手持控制器控制.双脚闸控制器控制.自动透视.手动透视.脉冲透视 ...

  7. php编写程序百马百担问题_编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...

    编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大.中.小各多少匹? 编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担, ...

  8. C++小课堂:STL中的栈容器(stack)

    栈很像我们的箱子,我们将衣服这些装进箱子,第一个拿出来的肯定是最顶上的那件衣服,栈也一样. 今天我们就来学习栈容器:stack 头文件:<stack> 之前介绍的vector其实是STL中 ...

  9. STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

最新文章

  1. 2021年大数据Flink(二十五):Flink 状态管理
  2. ASP.NET 应用中大文件上传研究
  3. 某大厂程序员求助:认识一个不错的小姐姐,却得知对方竟有四个兄弟姐妹!想放弃,对方却穷追不舍,怎么办?...
  4. 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!
  5. sqlserver存储过程入门?看不懂打死我
  6. 设置ubuntu默认python3设置
  7. error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
  8. 《Lua游戏开发实践指南》一3.2游戏项目中的Lua
  9. fckeditor出现the server didn't send back a proper XML response问题的解决(因为使用了“主题”)...
  10. Notepad++的列编辑模式_小技巧
  11. javplayer 使用教程_PS教程连载第91课:PS核心功能:剪贴蒙版讲解
  12. 第六章-网络可靠性设计
  13. php smarty框架案例,PHP框架_Smarty
  14. 嵌入式系统移植课笔记1(学通)
  15. MATLAB 常用函数学习笔记
  16. Mysql性能衡量指标
  17. LeetCode 1218 最长定差子序列
  18. mysql只能导出65535条_导出Excel超过65535条限制解决方案
  19. htonl htons ntohl ntohs inet_pton inet_ntop
  20. 华人学者再创佳绩!包揽CoRL2021最佳论文奖项

热门文章

  1. run as date怎么用_熟词僻义 | date是一种什么水果?
  2. php中append,插入节点append()、insertAfter()的特殊用法:对原有DOM元素进行移动
  3. php 留言板项目 ajax,PHP Ajax留言板
  4. java修改原有txt文件_(转)Java创建txt文件并进行读、写、修改操作
  5. IE浏览器开发人员工具怎么使用
  6. restful api接口设计
  7. null、undefined、NaN区分解析和条件判定,以及在IF条件中的判定
  8. Java微服务篇1——SpringBoot
  9. python内置函数详解总结篇_Python内置函数详解——总结篇
  10. MySQL 排名函数.md