vector容器排序
时间: 2023-10-23 13:12:26 浏览: 93
对于vector容器的排序,可以使用sort函数进行排序。以下是一个示例代码:
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> obj;
obj.push_back(1);
obj.push_back(3);
obj.push_back(0);
sort(obj.begin(), obj.end()); // 使用sort函数进行排序,默认从小到大
cout << "从小到大:" << endl;
for(int i=0; i<obj.size(); i++) {
cout << obj[i] << ",";
}
cout << "\n" << endl;
reverse(obj.begin(), obj.end()); // 使用reverse函数进行排序,从大到小
cout << "从大到小:" << endl;
for(int i=0; i<obj.size(); i++) {
cout << obj[i] << ",";
}
return 0;
}
这段代码首先创建一个vector容器,然后通过push_back函数向容器中添加元素。接着使用sort函数对容器进行排序,默认从小到大。然后使用reverse函数对容器进行排序,从大到小。最后通过循环遍历容器,打印排序后的结果。
相关问题
vector容器sort排序
你可以使用C++的标准库中的`std::sort`函数来对`vector`容器进行排序。`std::sort`函数接受两个迭代器参数,表示要排序的范围。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 3, 1, 4, 2};
std::sort(vec.begin(), vec.end());
for (const auto& element : vec) {
std::cout << element << " ";
}
return 0;
}
```
该代码将输出已排序的向量元素:1 2 3 4 5。你可以通过调用`std::sort`函数来对`vector`容器进行升序排序。如果要进行降序排序,你可以传递第三个参数作为比较函数。
希望这可以帮到你!如果还有其他问题,请随时提问。
vector容器sort排序自定义
`std::vector`容器在C++ STL中默认使用快速排序(QuickSort)进行元素排序,但是如果你想按照自定义的比较规则对元素进行排序,你可以通过提供一个自定义的`compare`函数或者直接利用lambda表达式来实现。
1. 自定义函数排序:你需要定义一个函数模板,该函数接受两个类型的元素作为输入,并返回一个布尔值表示它们的相对顺序。例如:
```cpp
bool myCompare(const MyType& a, const MyType& b) {
// 根据你的需求编写比较逻辑,如按年龄、字符串长度等
return a.age < b.age;
}
// 然后在排序时指定这个函数
std::sort(your_vector.begin(), your_vector.end(), myCompare);
```
2. Lambda表达式排序:如果你的排序逻辑比较简单,可以使用lambda表达式来替代自定义函数。例如:
```cpp
your_vector.sort([](const MyType& a, const MyType& b) { return a.age < b.age; });
```
这里假设`MyType`是一个拥有`age`成员变量的类。
阅读全文