为什么这个链接和it技术有关?
正常工作了吗?输出结果是:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<pair<int, string>> list;
int main() {
int one = 1, two = 2, three =3, five =5, six = 6;
string bla = "bla";
list.push_back( pair<int, string>(two, bla));
list.push_back( pair<int, string>(one, bla));
list.push_back( pair<int, string>(two, bla));
list.push_back( pair<int, string>(six, bla));
list.push_back( pair<int, string>(five, bla));
sort(list.begin(), list.end());
for(auto item : list) {
cout << item.first << endl;
}
}
正常工作了吗?输出结果是:
1
2
2
5
6
std::sort
是如何对我的int-string
对进行排序的?如何使其对我的类作为一对first
进行排序?是否有一种方法可以使用std::sort
按second
进行排序?
std::pair
有一个operator<
。如果你想让std::sort
排序方式不同,给它一个比较器。 - chrisbool operator<int, string><(const& std::pair<int, string> op1,const& std::pair<int, string> op2)
函数提供一种专门化,并将其传递给排序。 - πάντα ῥεῖvector
。由于需要RandomAccessIterators,因此std::sort
无法与std::list
一起使用。 - Praetorianstd::sort
使用双向迭代器的降序状态下也能工作。我一定想到了其他的东西,可能是lower_bound
。 - Mark Ransom