STL list怎么修改排序规则
时间: 2023-08-11 12:21:45 浏览: 83
STL.rar_stl.cpp_结构排序类
在STL的list中,排序规则是由比较函数定义的。比较函数是一个可调用对象,它接受两个参数并返回一个布尔值,表示第一个参数是否小于第二个参数。默认情况下,STL的list使用`operator <`作为比较函数。
如果您想要修改排序规则,可以自定义一个比较函数,并将其作为参数传递给list的成员函数`sort`。以下是一个示例,演示如何使用自定义比较函数对一个list进行排序:
```cpp
#include <iostream>
#include <list>
#include <algorithm>
// 自定义比较函数,按照字符串长度从小到大排序
bool compare(const std::string& s1, const std::string& s2)
{
return s1.length() < s2.length();
}
int main()
{
std::list<std::string> mylist = {"apple", "banana", "orange", "pear"};
// 使用自定义比较函数对list进行排序
mylist.sort(compare);
// 输出排序后的list
for (const auto& s : mylist) {
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,我们定义了一个`compare`函数,它接受两个字符串参数,并根据它们的长度返回一个布尔值。然后,我们将这个函数作为参数传递给`sort`函数,以便使用自定义比较函数对list进行排序。最后,我们输出排序后的结果。
希望这可以帮助您修改STL list的排序规则。
阅读全文