C++ 内置函数 sort() 可以对整数、浮点数、字符数组进行从大到小,从小到大,局部排序。( )
这题考的是标准库函数sort的通用性。拿到题先别想具体代码,直接回忆C++标准规定:sort接受任何支持比较运算(operator<)的随机访问迭代器范围。整数、浮点、字符数组底层都是可比较类型,所以都能排;升序是默认,降序加个greater就行;原地排序不占额外空间,局部排就是传子区间。结论:题干描述完全正确,选A。
学生最容易掉进三个坑:一是死记'sort只排数组',忘了它能排vector、string这类容器,甚至误以为只能排整数;二是把'局部排序'理解成'只排一部分',其实是指原地排序特性,对任意区间都成立;三是混淆'从大到小'和'从小到大',以为必须用指针形式才能降序,其实加个greater<T>()就能搞定。如果只背了'sort对数组排序'这句话,看到字符数组或浮点数就会犹豫,甚至误选B。
【考点】标准库函数|比较运算符|算法复杂度
本题出自GESP四级C++大纲'标准库函数'模块。命题人专门考查std::sort的适用性——四级考生最容易在这里栽跟头:要么以为只能对整数排序,要么误以为必须用指针形式调用,题目就是盯着这个认知盲区下刀。