コマンドラインからクリップボードにコピーする
priority_queueで昇順にソートして要素を取り出す
priority_queueを普通に使うと要素が降順にソートされる。
priority_queue<int> queue; int data[] = {3, 1, 2, 5, 4}; for(int i=0; i<5; i++){ queue.push(data[i]); } while(!queue.empty()){ cout << queue.top() << " "; queue.pop(); } cout << endl;
% ./a.out 5 4 3 2 1
昇順にソートして要素を取り出したい場合はキューを作成するときのテンプレートにgreaterを指定すればOK。
priority_queue<int, vector<int>, greater<int> > queue; int data[] = {3, 1, 2, 5, 4}; for(int i=0; i<5; i++){ queue.push(data[i]); } while(!queue.empty()){ cout << queue.top() << " "; queue.pop(); } cout << endl;
% ./a.out 1 2 3 4 5