C++ 无法理解如何在c++;stl工作?
在阅读Topcoder的教程时,我遇到了一个声明 对第一个和第二个元素进行比较。如果第一个元素不相等,则结果将仅基于第一个元素的比较;只有当第一个元素相等时,才会比较第二个元素C++ 无法理解如何在c++;stl工作?,c++,stl,C++,Stl,在阅读Topcoder的教程时,我遇到了一个声明 对第一个和第二个元素进行比较。如果第一个元素不相等,则结果将仅基于第一个元素的比较;只有当第一个元素相等时,才会比较第二个元素 我不明白这句话想说什么?假设您有一个按字母顺序排序的人名列表。还假设每个名字都只有名和姓 你会怎么分类 你只需比较名字,直到它们完全匹配。当名字相同时,检查第二个名字 假设您有要按字母顺序排序的人名列表。还假设每个名字都只有名和姓 你会怎么分类 你只需比较名字,直到它们完全匹配。当名字相同时,检查第二个名字 考虑成对的s
我不明白这句话想说什么?假设您有一个按字母顺序排序的人名列表。还假设每个名字都只有
名
和姓
你会怎么分类
你只需比较名字,直到它们完全匹配。当名字相同时,检查第二个名字 假设您有要按字母顺序排序的人名列表。还假设每个名字都只有
名
和姓
你会怎么分类
你只需比较名字,直到它们完全匹配。当名字相同时,检查第二个名字 考虑成对的
std::pair
考虑成对的
std::pair
它的意思是
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
If子表达式
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
等于flase
然后是子表达式
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
不会计算,因为整个表达式将等于false
这是对的比较,对应于逻辑和运算符的评价,根据C++标准评估以下方式
1从左到右依次为&&运算符组。操作数都是 上下文转换为bool(第4条)。如果两者都存在,则结果为真 否则,操作数为true和false。与&、&&担保不同 从左到右求值:如果 第一个操作数为false。它的意思是
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
If子表达式
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
等于flase
然后是子表达式
( p1.first == p2.first ) && ( p1.second == p2.second )
( p1.first == p2.first )
( p1.second == p2.second )
不会计算,因为整个表达式将等于false
这是对的比较,对应于逻辑和运算符的评价,根据C++标准评估以下方式
1从左到右依次为&&运算符组。操作数都是 上下文转换为bool(第4条)。如果两者都存在,则结果为真 否则,操作数为true和false。与&、&&担保不同 从左到右求值:如果 第一个操作数为false。它们是按字典顺序进行比较的。字典顺序:意味着它们就像电话簿中的名字一样进行比较。如果你想一想十进制数字是如何进行比较的,最重要的数字总是优先于所有意义较小的数字。因此,除非两个数字之间的数百列相等,否则你甚至不用看十或单位。但如果数百列相等,则检查十列。使用
std::pair
时,您只有两个“列”:std::pair::first
和std::pair::second
。除非第一列(std::pair::first
)相等,否则无需检查第二列(std::pair::second
).它们是按字典顺序进行比较的。按字典顺序:意味着它们的比较就像电话簿中的名字一样。如果你想一想十进制数字是如何进行比较的,最重要的数字总是优先于所有意义较小的数字。因此,除非两个数字之间的数百列相等,否则你甚至不用看十或单位。但如果数百列相等,则检查十列。使用std::pair
时,您只有两个“列”:std::pair::first
和std::pair::second
。除非第一列(std::pair::first
)相等,否则无需麻烦检查第二列(std::pair::second
)。大多数姓名列表(在美国?)先按姓氏排序,然后按姓氏排序,这与pair先比较后比较最末姓名列表不同(在美国?)先按姓氏排序,然后按姓氏排序,这不像一对先比较后比较