Ros*_*han -1 c++ sorting vector
嘿所有我都有一对矢量.在对矢量进行排序之后(即sort(v.begin(),v.end())......它在第一个元素的基础上对元素进行排序,但是我有一个问题......因为我需要保持第二个元素的顺序,第一个元素是相同的顺序. .例如看下面的代码..
std::vector<std::pair<int, int> > v(2);
v[0].first = 1; v[1].first = 1;
v[0].second = 2; v[1].second = 0;
sort(v.begin(),v.end());
for (int i = 0; i < 2; i++)
{
std::cout << v[i].first << " " << v[i].second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
作为上述代码的输出是
1 0
1 2
Run Code Online (Sandbox Code Playgroud)
而我希望输出如下
1 2
1 0
Run Code Online (Sandbox Code Playgroud)
请帮忙 !!
使用std::stable_sort自定义比较器(以保留您的广告订单):
std::stable_sort(std::begin(v),
std::end(v),
[](const std::pair<int, int>& p1, const std::pair<int, int>& p2) { return p1.first < p2.first; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |