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同时为假等价的,与运算符无关。看上去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中“大”、“小”和“相等”的概念相关推荐
- C++中STL中的大、小、相等概念
1.STL的大.小.相等概念 STL中关联容器内部的元素是排序的.STL中的许多算法也涉及排序.查找.这些容器和算法都需要对元素进行比较,有的比较是否相等,有的比较元素大小. 在STL中,默认情况下, ...
- 《变量》精髓:慢变量造就时代进步大趋势, 在慢变量中找到小趋势,能坚定我们前进的信心
<变量>书中的精髓:慢变量造就时代进步大趋势, 在慢变量中找到小趋势,能坚定我们前进的信心 心理学上,有一个著名的实验,叫"看不见的大猩猩".这个实验是这样的:参加测试 ...
- c语言 100匹马 编程,编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...
编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大.中.小各多少匹? 编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担, ...
- 大型机是微型计算机吗,计算机按规模分为巨、大、中、小、微型计算机,其发展趋势为()。A、巨型机B、大型机C、微型机D、巨型机...
计算机按规模分为巨.大.中.小.微型计算机,其发展趋势为().A.巨型机B.大型机C.微型机D.巨型机 更多相关问题 有心理困扰的人是不正常的. [判断题]渔鼓类唱腔简朴,多带吟诵性.( ) [判断题 ...
- 【C语言基础练习】100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。
100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担.试编写程序计算大.中.小马的数目. 1 #include<stdio.h> 2 int main() 3 { 4 i ...
- 医疗器械中的大C中C小C
C形臂分为大C.中C和小C,由C型的机架,产生X射线的球管,采集图像的影像增强器和CCD摄像机,以及图像处理的工作站组成.其控制方式主要有手持控制器控制.双脚闸控制器控制.自动透视.手动透视.脉冲透视 ...
- php编写程序百马百担问题_编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...
编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大.中.小各多少匹? 编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担, ...
- C++小课堂:STL中的栈容器(stack)
栈很像我们的箱子,我们将衣服这些装进箱子,第一个拿出来的肯定是最顶上的那件衣服,栈也一样. 今天我们就来学习栈容器:stack 头文件:<stack> 之前介绍的vector其实是STL中 ...
- STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
最新文章
- 2021年大数据Flink(二十五):Flink 状态管理
- ASP.NET 应用中大文件上传研究
- 某大厂程序员求助:认识一个不错的小姐姐,却得知对方竟有四个兄弟姐妹!想放弃,对方却穷追不舍,怎么办?...
- 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!
- sqlserver存储过程入门?看不懂打死我
- 设置ubuntu默认python3设置
- error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
- 《Lua游戏开发实践指南》一3.2游戏项目中的Lua
- fckeditor出现the server didn't send back a proper XML response问题的解决(因为使用了“主题”)...
- Notepad++的列编辑模式_小技巧
- javplayer 使用教程_PS教程连载第91课:PS核心功能:剪贴蒙版讲解
- 第六章-网络可靠性设计
- php smarty框架案例,PHP框架_Smarty
- 嵌入式系统移植课笔记1(学通)
- MATLAB 常用函数学习笔记
- Mysql性能衡量指标
- LeetCode 1218 最长定差子序列
- mysql只能导出65535条_导出Excel超过65535条限制解决方案
- htonl htons ntohl ntohs inet_pton inet_ntop
- 华人学者再创佳绩!包揽CoRL2021最佳论文奖项
热门文章
- run as date怎么用_熟词僻义 | date是一种什么水果?
- php中append,插入节点append()、insertAfter()的特殊用法:对原有DOM元素进行移动
- php 留言板项目 ajax,PHP Ajax留言板
- java修改原有txt文件_(转)Java创建txt文件并进行读、写、修改操作
- IE浏览器开发人员工具怎么使用
- restful api接口设计
- null、undefined、NaN区分解析和条件判定,以及在IF条件中的判定
- Java微服务篇1——SpringBoot
- python内置函数详解总结篇_Python内置函数详解——总结篇
- MySQL 排名函数.md