The Wayback Machine - https://web.archive.org/web/20180510011150/http://ja.cppreference.com:80/w/cpp/algorithm/sort
名前空間
変種
操作

std::sort

提供: cppreference.com
< cpp‎ | algorithm

 
 
アルゴリズムライブラリ
実行ポリシー (C++17)
非変更シーケンス操作
(C++11)(C++11)(C++11)
(C++17)
変更シーケンス操作
未初期化記憶域の操作
分割操作
ソート操作
バイナリサーチ操作
集合操作 (ソート済み範囲に対する)
ヒープ操作
(C++11)
最小/最大演算
(C++11)
(C++17)
順列
数値演算
C のライブラリ
 
ヘッダ <algorithm> で定義
template<class RandomIt >
void sort( RandomIt first, RandomIt last );
(1)
template<class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
(2)
昇順で範囲[first, last)内の要素を並べ替えます。等しい要素の順序は保持される保証はありません。最初のバージョンは、要素を比較するoperator<使用して、2番目のバージョンは、指定された比較関数compを使用しています.
Original:
Sorts the elements in the range [first, last) in ascending order. The order of equal elements is not guaranteed to be preserved. The first version uses operator< to compare the elements, the second version uses the given comparison function comp.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

目次

[編集]パラメータ

first, last -
ソートする要素の範囲
Original:
the range of elements to sort
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
comp - 比較関数. 最初の値が二つ目の値より小さい 場合、 ​trueを返します.

比較関数のシグネチャは以下と同等でなければなりません.

 bool cmp(const Type1 &a, const Type2 &b);

シグネチャはconstを含まなくても構いませんが, 比較関数は渡されたオブジェクトを変更してはなりません.
Type1 および Type2 は、どちらも RandomIt 型のオブジェクトの逆参照から暗黙に変換可能なものでなければなりません。 ​

型の要件
-
RandomItValueSwappable および RandomAccessIterator の要件を満たさなければなりません。
-
The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible.

[編集]値を返します

(なし)

[編集]複雑性

O(N·log(N))N =std::distance(first, last)cmpアプリケーション.
Original:
O(N·log(N)), where N =std::distance(first, last) applications of cmp.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]

#include <algorithm>#include <functional>#include <array>#include <iostream>   int main(){std::array<int, 10> s{5, 7, 4, 2, 8, 6, 1, 9, 0, 3};   std::sort(s.begin(), s.end());for(int a : s){std::cout<< a <<" ";}std::cout<<'\n';   std::sort(s.begin(), s.end(), std::greater<int>());for(int a : s){std::cout<< a <<" ";}std::cout<<'\n';}

出力:

0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0

[編集]参照

指定範囲の最初の N 個の要素をソートします
(関数テンプレート)[edit]
等しい要素間の順序を維持しながら指定範囲の要素をソートします
(関数テンプレート)[edit]
close