C++ 9.3.4 容器支持的运算---关系操作符

来源:互联网 发布:电影网络独家发行合同 编辑:程序博客网 时间:2024/05/24 01:49

简介

===========================================================================================

一、关系操作符

  • 所有容器类型都支持用关系操作符类实现两个容器的比较。(前面说到的是迭代器能够支持的一些操作,list容器的迭代器不支持算术运算、关系运算,而不是说list容器。。9.2节)

  • 比较的容器必须具有相同的容器类型,而且其元素类型也必须相同。

  • 容器的比较是基于容器内元素的比较。

  • 容器的比较使用了元素类型定义的同一个关系操作符:两个容器做!=比较使用了其元素类型定义的!=操作符。

  • 如果容器的元素类型不支持某种操作符,则该类容器就不能做这种比较运算。

  • 下面的操作类似于string类型的关系运算(3.2.3):

    • 如果两个容器具有相同的长度而且所有元素都相等,那么这两个容器就相等;否则,不等

    • 如果两个容器长度不相同,但较短的容器中所有元素都等于较长容器中对应的元素,则称较短的容器小于另一个容器。

    • 如果两个容器都不是对方的初始子序列,则它们的比较结果取决于所比较的第一个不相等的元素。

ivec1:1 3 5 7 9 12ivec2:0 2 4 6 8 10 12ivec3:1 3 9ivec4:1 3 5 7ivec5:1 3 5 7 9 12ivec2<ivec1ivec1<ivec3ivec1==ivec5ivec1>ivec4
  • 使用元素提供的关系操作符实现容器的关系运算—C++语言只允许两个容器做其元素类型定义的关系运算
  • 比如string 和int 类型都定义了关系运算,所以我们可以对string和int类型的容器进行关系运算,但是如果元素类型是Sales_item类型,那么不能进行关系运算,因为在这个类类型上面没有定义过关系运算。
0 0
原创粉丝点击