9.2.6 容器大小操作

除了一个例外,每个容器类型都有三个与大小相关的操作。成员函数size返回容器中元素数目,empty当size为0时返回布尔值true,否则返回false,max_size返回一个大于或等于该类型容器所能容纳的最大元素数的值,forward_list支持max_size和empty,但不支持size。

9.2.7 关系运算符

每个容器都支持相等运算符(==和!=)。

除了无序关联容器外的所有容器类型都支持关系运算符(>、>=、<、<=)。

关系运算符左右两边的运算对象必须保存相同类型的元素。比较两个容器实际上是进行元素的逐对比较。这些运算符的工作方式与string的关系运算类似:

  • 如果两个容器具有相同大小且所有元素都两两对应相等,则这两个容器相等,否则不等。
  • 如果两个容器大小不同,但较小容器中每个元素都等于较大容器中的对应元素,则较小容器小于较大容器。
  • 如果两个容器都不是另一个容器的前缀子序列,它们的比较结果取决于第一个不等的元素的比较结果。

容器的关系运算符使用元素的关系运算符完成比较。如果元素类型不支持所需运算符,那么保存这种元素的容器就不能使用相应的运算符。

vector<Sales_data> storeA, storeB;
if (storeA < storeB) //错误