c++如何对已经正序拍好的vector进行排序
时间: 2023-07-19 14:46:28 浏览: 60
如果你想对一个已经正序排好的`vector`进行排序,可以使用`std::reverse()`函数进行反转,然后再使用`std::sort()`函数进行排序。示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> vec{1, 2, 3, 4, 5};
std::reverse(vec.begin(), vec.end()); // 反转vector
// 输出反转后的vector
std::cout << "反转后的vector:\n";
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
std::sort(vec.begin(), vec.end()); // 再次排序
// 输出排序后的vector
std::cout << "排序后的vector:\n";
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们先使用`std::reverse()`函数将`vec`反转,然后再使用`std::sort()`函数对其进行排序。注意,如果使用`std::reverse()`函数反转`vector`,原来的正序排列顺序会被破坏,因此在进行反转之前,需要确保自己不需要原来的正序排列顺序。
阅读全文