sort对于vector的pair排序
时间: 2023-04-21 15:01:36 浏览: 116
sort对于vector的pair排序可以使用lambda表达式来定义排序规则,例如:
```cpp
vector<pair<int, string>> vec = {{3, "c"}, {1, "a"}, {2, "b"}};
sort(vec.begin(), vec.end(), [](const pair<int, string>& a, const pair<int, string>& b) {
return a.first < b.first;
});
```
以上代码将按照pair的第一个元素进行升序排序,结果为:
```
{(1, "a"), (2, "b"), (3, "c")}
```
相关问题
sort排序vector
要对vector进行排序,可以使用sort()函数。sort()函数可以接受一个表示容器的迭代器范围作为参数,然后对该范围内的元素进行排序。在排序时,我们需要传入一个比较函数,用于告诉sort()函数如何比较元素。
如果要对vector<int>进行排序,可以使用以下代码:
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
sort(nums.begin(), nums.end()); // 默认升序排序
for(auto num : nums) {
cout << num << " ";
}
cout << endl;
sort(nums.begin(), nums.end(), greater<int>()); // 降序排序
for(auto num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
如果要对二维数组进行排序,可以使用以下代码:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> arr = {{3, 2}, {1, 4}, {7, 6}};
sort(arr.begin(), arr.end(), [](const vector<int>& a, const vector<int>& b) {
return a < b << ", " << v << "]" << endl;
}
return 0;
}
```
如果要对vector<pair<int,int>>的第二个元素进行排序,可以使用以下代码:
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool cmp(const pair<int, int>& a, const pair<int, int>& b) {
return a.second < b.second;
}
int main() {
vector<pair<int, int>> v = {{1, 4}, {2, 2}, {3, 5}, {4, 1}, {5, 3}};
sort(v.begin(), v.end(), cmp);
for(auto p : v) {
cout << p.first << " " << p.second << endl;
}
return 0;
}
```
这样就可以使用sort()函数对vector进行排序了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [sort函数对结构体|pair对组|vector容器|map排序|二维数组的第x列 的排序](https://blog.csdn.net/weixin_73961973/article/details/129378897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
c++ vector pair
c++中的vector可以存储任意类型的元素,包括pair类型的元素。在给vector排序时,可以自定义排序算法,比如按照pair元素的第二个元素的值进行排序。可以通过实现一个静态的比较函数来自定义排序算法,这个比较函数接受两个pair元素作为参数,根据需要的排序规则返回一个布尔值。在主函数中,可以使用std::sort函数对vector中的pair元素进行排序。为了使用pair类型,不需要添加任何额外的头文件。pair类型可以进行复制构造,即可以通过一个已有的pair对象来初始化另一个pair对象。可以通过p1.first和p1.second来访问pair对象的第一个和第二个元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文