C++ STLの algorithmで便利そうなものをメモしてきます.
並べ替え・ソート(sort)
- 並べ替えを実施します。
- vectorなどのランダムアクセス可能なコンテナで利用可能。
- ロジックはクイックソートを利用している。
使い方
sortの引数として、並べ替えたい初めと終わりのイテレータを渡す。たいていは begin(),end().
sort(a.begin(), a.end());
デフォルトでは小さい順(less())に並べ替えられる。大きい順に並べ替える時は、以下のようにgreater<>()を引数として渡す。
sort(a.begin(), a.end(), greater<int>());
例
#include <algorithm>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int> a;
a.push_back(3);
a.push_back(1);
a.push_back(2);
sort(a.begin(), a.end());
for( auto x : a ) cout << x;
cout << endl;
sort(a.begin(), a.end(), greater<int>());
for( auto x : a ) cout << x;
cout << endl;
}
実行結果
$ g++ -std=c++11 sort.cpp
$ ./a
123
321