c++ list 排序样例
时间: 2024-06-20 18:04:39 浏览: 121
C++排序算法之冒泡排序源码
在C++中,`std::list`是一个双向链表容器,它的排序通常不直接像数组或vector那样提供内置的排序方法。如果你想对`list`中的元素进行排序,你可能需要借助其他算法或数据结构,比如先将`list`转换为vector,然后对vector进行排序,最后再将结果复制回`list`。
以下是一个使用`sort`函数配合`copy`和`splice`操作对`list`进行排序的示例:
```cpp
#include <iostream>
#include <list>
#include <algorithm> // 包含sort函数
#include <vector>
// 假设你有一个包含自定义类型的元素的list
class MyType {
public:
int value;
// 添加必要的构造函数和其他成员
};
void sortList(std::list<MyType>& myList) {
std::vector<MyType> vec(myList.begin(), myList.end()); // 复制list到vector
std::sort(vec.begin(), vec.end(), [](const MyType& a, const MyType& b) { return a.value < b.value; }); // 根据value字段排序
myList.clear(); // 清空原来的list
for (const auto& item : vec) {
myList.push_back(item); // 将排序后的元素重新插入list
}
}
int main() {
std::list<MyType> myList = { {4}, {1}, {3}, {2} }; // 创建一个示例list
sortList(myList);
for (const auto& item : myList) {
std::cout << "Sorted value: " << item.value << "\n";
}
return 0;
}
```
阅读全文