std::vector如何排序
时间: 2023-12-14 14:04:25 浏览: 96
对std::vector进行排序,可以使用std::sort函数。std::sort函数位于<algorithm>头文件中,它接受两个迭代器参数,表示要排序的范围。以下是一个使用std::sort对std::vector进行排序的示例代码:
```cpp
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
std::sort(vec.begin(), vec.end());
for (const auto& num : vec) {
std::cout << num << " ";
}
return 0;
}
```
运行以上代码会输出:1 1 2 3 4 5 6 9,表示vector已经按升序排序。
相关问题
c++ std::vector 排序
C++中的std::vector是一个动态数组容器,可以存储任意类型的元素。要对std::vector进行排序,可以使用std::sort函数,该函数位于<algorithm>头文件中。
下面是对std::vector进行排序的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {5, 2, 8, 1, 9};
// 使用std::sort对std::vector进行排序
std::sort(nums.begin(), nums.end());
// 输出排序后的结果
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们首先包含了<iostream>、<vector>和<algorithm>头文件。然后创建了一个std::vector<int>类型的nums,并初始化了一些整数元素。
接下来,我们使用std::sort函数对nums进行排序,传入nums.begin()和nums.end()作为排序范围。
最后,我们使用for循环遍历排序后的nums,并输出每个元素。
运行上述代码,输出结果为:1 2 5 8 9,表示nums已经按升序排列。
对std::vector排序
可以使用 `<algorithm>` 中的 `std::sort` 函数对 `std::vector` 进行排序,具体代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 对 nums 进行排序
std::sort(nums.begin(), nums.end());
// 输出排序后的结果
for (auto num : nums) {
std::cout << num << " ";
}
return 0;
}
```
输出结果为:`1 1 2 3 3 4 5 5 5 6 9`。
其中,`std::sort` 的第一个参数是要排序的序列的起始位置,第二个参数是要排序的序列的结束位置(不包含结束位置元素)。在上述代码中,`nums.begin()` 为 `std::vector` 的首元素的迭代器,`nums.end()` 为 `std::vector` 的尾元素的迭代器(注意,由于 `nums.end()` 不包含最后一个元素,所以在输出结果时不需要打印最后一个元素)。
阅读全文