比较两个 C++ 容器时 > 运算符的作用是什么?

What does the > operator do when comparing two C++ containers?

出于某种原因,C++ 中存在在 C++ 中的容器之间而不是容器元素之间进行 greater-than/less-than 比较的能力。例如

std::vector<int> vec1 = {1, 2, 3}, vec2 = {1, 2, 3, 4};
return vec1 > vec2;

cppreference page给出如下解释:

"true if the contents of the lhs are lexicographically greater than the contents of rhs, false otherwise".

在这种情况下,“lexicographically 更大”是什么意思? 这到底有什么用?

从词汇上讲,更大的意思与字典中的意思相同。您可以通过将 1,2,3 替换为 "abc" 并将 1,2,3,4 替换为 "abcd" 来可视化它。字符串 "abcd" 稍后会出现在字典中,因为它在词典上更大。

如果你有 2,2,3(而不是 1,2,3),因为 2 在词法上大于 1,对于 2,2,3 和 1 之间的比较,> 将 return 为真, 2,3,4.

容器的相对长度无关紧要。我们只看这个序列是否会在另一个序列之前出现在字典中('a' 出现在 [=24= 之前],'1' 出现在 '2' 之前)。

当您需要知道一个序列是否在另一个序列之前时,这是一个有用的示例。

希望对您有所帮助。