-4

我正在尝试将数据作为整数对列表输入,按第一个对值排序对,然后是第二个值,然后输出排序后的对值;

#include <list>
#include <iostream>
#include <algorithm>
//experiment with list sort of pair
using namespace std;
int main (int argc, char* argv[]){
    int N,x,y;
    list< pair<int,int> >::iterator it;
    list< pair<int,int> > a; 
    cout<<" number of pairs?"<<endl;
    cin >> N;
    cout<<"enter pairs, with space between 1st and second of pair"<<endl;
    for(int i=0;i<N;++i) {
        cin >> x >> y;
        a.push_back(make_pair(x,y)); 
    }
    cout<<"sorted pairs;"<<endl;
    sort(a.begin(),a.end()); // Sorts first the x, then the y-coordinate
    for (it=a.begin(); it!=a.end(); ++it) {
        cout << " " << (*it).first << " " << (*it).second << endl;
    }
    return 0;
}
4

1 回答 1

5

std::sort,从<algorithm>标题中,仅适用于随机访问迭代器,而std::list没有。但std::list确实有自己的排序成员函数,它使用不同的算法。

a.sort();
于 2013-11-09T04:04:43.853 回答