>运算符在比较两个C ++容器时会做什么?

问题描述 投票:-1回答:1

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

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

cppreference page给出以下解释:“如果在字典上lhs的内容大于rhs的内容,则为true,否则为false”。

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

c++ vector containers comparison standards
1个回答
1
投票

从词法上讲,其含义与字典相同。您可以通过将1,2,3替换为“ abc”并将1,2,3,4替换为“ abcd”来形象化它。字符串“ abcd”稍后会出现在字典中,因为从词法上讲更大。

如果您有2,2,3(而不是1,2,3),因为2在词法上大于1,>对于2,2,3与1,2,3,4之间的比较将返回true。] >

容器的相对长度无关紧要。我们仅查看序列是否会在字典中出现在另一个序列之前(“ a”出现在“ b”之前,“ 1”出现在“ 2”之前)。

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

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.