C++实用技巧:高效读写string与STL排序算法

需积分: 30 1 下载量 160 浏览量 更新于2024-08-25 收藏 479KB PPT 举报
"本资源主要介绍了C++中的string类型读写操作以及STL中的排序算法应用。在C++中,string类型的读写可以使用cin和cout,读取时会忽略开头的空格、制表符和换行符。此外,通过示例展示了如何使用内置排序函数sort对数组进行从小到大或从大到小的排序,并提供了自定义比较函数的方法。" 在C++编程中,`string`类型是处理文本数据的重要工具。字符串的输入输出操作相对简单,可以用`cin`来读取,`cout`来输出。在读取`string`类型的数据时,`cin`会自动忽略掉开头的空白字符,直到遇到第一个非空白字符才开始读取,并且会在遇到下一个空白字符时停止,不会包含空字符。 对于读取未知数目的`string`对象,可以通过一个循环配合`cin`来实现。例如,在给定的代码片段中,使用`while (cin >> s)`可以逐个读取用户输入的字符串,直到没有更多输入为止。每读取到一个字符串,就将其输出并累加计数器`tot`。 接下来,我们讨论C++的STL(Standard Template Library,标准模板库)中的排序算法。STL提供了一个非常强大的工具——`sort`函数,它能够对序列容器(如数组、向量等)中的元素进行排序。`sort`函数通常的使用方式是`sort(arr + m, arr + n)`,它会对`arr[m]`到`arr[n-1]`之间的元素进行升序排序。 如果需要自定义排序规则,可以传递一个比较函数作为第三个参数。例如,如果要进行降序排序,可以编写一个名为`my_comp`的比较函数,该函数接收两个整数作为参数,如果第一个参数大于第二个参数,则返回`true`。然后,将这个比较函数传给`sort`函数即可实现降序排列。 下面是一些使用`sort`函数的例子: 1. 升序排序: ```cpp #include <iostream> #include <algorithm> using namespace std; int main() { int a[10]; for (int i = 0; i < 10; ++i) cin >> a[i]; sort(a, a + 10); for (int i = 0; i < 10; ++i) cout << a[i] << ' '; cout << endl; return 0; } ``` 2. 降序排序: ```cpp #include <iostream> #include <algorithm> using namespace std; int my_comp(const int &a, const int &b) { return a > b; } int main() { int a[10]; for (int i = 0; i < 10; ++i) cin >> a[i]; sort(a, a + 10, my_comp); for (int i = 0; i < 10; ++i) cout << a[i] << ' '; cout << endl; return 0; } ``` 以上就是关于C++中的`string`类型读写及STL排序算法的基本知识。熟练掌握这些技巧能帮助我们在编程实践中提高效率,更好地解决问题。