sort函数对vector排序
时间: 2023-07-25 13:33:15 浏览: 87
是的,sort函数可以对vector进行排序,具体用法如下:
```
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> vec{ 3, 7, 1, 9, 2, 5, 6, 8, 4 };
// 使用sort函数对vector进行排序
std::sort(vec.begin(), vec.end());
// 输出排序后的vector
for (auto i : vec)
{
std::cout << i << " ";
}
return 0;
}
```
输出:
```
1 2 3 4 5 6 7 8 9
```
相关问题
sort对结构体vector排序
在C++中,对结构体的`vector`进行排序通常需要使用`sort`函数,该函数定义在`<algorithm>`头文件中。为了实现排序,你需要提供一个比较函数或者重载`operator<`来定义排序的依据。以下是使用结构体`vector`进行排序的基本步骤:
1. 定义结构体:首先定义你需要排序的结构体类型,其中包含需要进行比较的成员变量。
```cpp
struct MyStruct {
int key; // 用于排序的键值
// 可能还包含其他成员变量
};
```
2. 创建`vector`:创建一个该结构体类型的`vector`,并填充数据。
```cpp
std::vector<MyStruct> vec;
// 填充vec,例如:
// vec.push_back({5, ...});
// vec.push_back({1, ...});
// ...
```
3. 使用`sort`函数:使用`std::sort`函数进行排序,你可以选择提供一个自定义的比较函数或者重载`operator<`。
- 使用自定义比较函数:
```cpp
bool compareFunction(const MyStruct& a, const MyStruct& b) {
// 返回a的键值小于b的键值
return a.key < b.key;
}
std::sort(vec.begin(), vec.end(), compareFunction);
```
- 重载`operator<`:
```cpp
bool MyStruct::operator<(const MyStruct& other) const {
return this->key < other.key;
}
std::sort(vec.begin(), vec.end());
```
在使用`sort`函数进行排序时,默认按照升序排序,如果需要按照降序排序,可以使用`std::greater<T>`作为第三个参数。
```cpp
std::sort(vec.begin(), vec.end(), std::greater<MyStruct>());
```
sort对vector排序
可以使用C++中的sort函数对vector进行排序。sort函数的语法如下:
```c++
sort(begin_iterator, end_iterator, compare_function);
```
其中,`begin_iterator`和`end_iterator`分别是vector的起始迭代器和末尾迭代器,`compare_function`是一个可选参数,它是一个用于比较元素的函数指针或函数对象。如果不提供`compare_function`,则默认按升序排序。
下面是一个示例代码,演示了如何对vector进行排序:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool myFunction(int i, int j) {
return (i < j);
}
int main() {
vector<int> myVector = {3, 2, 5, 1, 4};
// 使用默认的比较函数按升序排序
sort(myVector.begin(), myVector.end());
// 输出排序后的结果
for (int i = 0; i < myVector.size(); i++) {
cout << myVector[i] << " ";
}
cout << endl;
// 使用自定义的比较函数按降序排序
sort(myVector.begin(), myVector.end(), myFunction);
// 输出排序后的结果
for (int i = 0; i < myVector.size(); i++) {
cout << myVector[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
5 4 3 2 1
```
在上面的示例中,首先使用默认的比较函数按升序排序,然后使用自定义的比较函数按降序排序。
阅读全文