GESP 五级 · GESP 五级样题(C++ 组) 第 21 题

判断题 · 答案 B

← 整套速查表 GESP 五级 全部真题

题目

在 C++ 语言中,内置的排序算法(algorithm 库中的 sort 函数)只能对 C++ 的基础类型(如 int、double 等)做排序,而不能对自定义类型做排序。( )

答案:B

解题思维

这道题考的是 STL 中 std::sort 的模板机制和比较器传参。很多同学死记硬背'sort 需要比较器',却忽略了比较器完全可以自定义,从而误以为只能排基础类型。拿到题先想:sort 是模板,第二个参数能传什么?

常见错误

审题时容易被'只能对基础类型'这种绝对化表述带偏,误选'正确'。其实命题人就是把'需要比较器'偷换成了'只能排基础类型',一字之差全题翻车。涉及代码的题目要逐行分析变量变化,注意迭代器失效问题。

详细解析(节选)

考点定位

GESP 五级 C++ 语言模块。命题人卡住的是那些只背过'sort 需要比较器'结论的初学者——他们一看到'自定义类型'就慌了,以为 sort 只能排 int、double 等基础类型。

概念拆解

std::sort 是算法库中的模板函数,它的核心设计思想是可定制。默认情况下,它调用元素的运算符重载(通常是 operator<)来判断大小。但关键点在于:第二个参数可以传入一个自定义的比较器(Comparator)。只要这个比较器能正确判断两个同类型元素的大小关系,sort 就能工作。这意味着,对于任何自定义类型(比如 struct 或 class),只要我们能定义好比较逻辑(重载 operator< 或者传入 lambda),sort 就能轻松处理。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断