std::hive<T,Allocator>::sort
ja.cppreference.net より
template< class Compare = std::less<T> >
void sort( Compare comp = Compare() );
|
(C++26 以降) | |
要素をソートします。メモリ確保が行われる可能性があります。要素の比較には comp を使用します。等価な要素の順序は保持されません。
コンテナ *this 内の要素を指す参照、ポインタ、イテレータ、および終端イテレータは無効化される可能性があります。
T は MoveInsertable(hive へのムーブ挿入可能)、MoveAssignable(ムーブ代入可能)、および Swappable(swap 可能)である必要があります。そうでない場合、動作は未定義です。
引数
| comp | - | 比較関数オブジェクト(つまり、Compare の要件を満たすオブジェクト)。第一引数が第二引数よりtrue小さい(つまり、順序的に前にある)場合に を返します。比較関数のシグネチャは以下と同等であるべきです:
シグネチャに |
| 型要件 | ||
-Compare は Compare の要件を満たさなければなりません。
| ||
計算量
N·log(N) 回の comp の適用。ここで N は size() です。
例外
例外が投げられた場合、コンテナ *this 内の要素の順序は未規定です。
注意
std::sort および ranges::sort はランダムアクセスイテレータを必要とするため、hive では使用できません。
例
このコードを実行する
#include <hive>
#include <functional>
#include <print>
int main()
{
std::hive<int> hive{3, 1, 4, 1, 5, 9, 2, 6, 5};
std::println("Initially: {}", hive);
hive.sort();
std::println("Ascending: {}", hive);
hive.sort(std::greater<int>());
std::println("Descending: {}", hive);
}
出力:
Initially: [3, 1, 4, 1, 5, 9, 2, 6, 5]
Ascending: [1, 1, 2, 3, 4, 5, 5, 6, 9]
Descending: [9, 6, 5, 5, 4, 3, 2, 1, 1]
関連項目
| 連続した重複要素を削除する (パブリックメンバ関数) |