代码之家  ›  专栏  ›  技术社区  ›  George

为什么C++容器之间存在比较运算符?[闭门]

  •  -3
  • George  · 技术社区  · 6 年前

    我的问题,或者更确切地说,困扰我的问题是编译以下代码:

    auto nonsense = std::vector<int>{20,30,40,50} < std::vector<int>{21,29,41,49}
    

    比较的意义是什么?

    == !=

    1 回复  |  直到 6 年前
        1
  •  3
  •   Headline    6 年前

    首先, std::vector

    在我们讨论之前 我们应该先知道

    当你使用 < <= >= > lexicographical 比较(更具体地说,它是字面意义上的 std::lexicographical_compare here ).

    These overloads 作为一种与向量进行比较的简捷方法。这对你来说可能没什么用处,但这是比较两个向量的好方法。如果你有另一个关于向量比较的想法,就由你来实现它。

    标准只能起到这么多的作用,即使它看起来很利基或没有用处,也总有一个原因。在这种情况下,这是因为委员会一致认为,词典比较是最明智的“默认”。