QCollator Class
QCollator クラスは、ローカライズされた照合アルゴリズムに従って文字列を比較します。詳細...
Header: | #include <QCollator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含むすべてのメンバの一覧
- QCollator は、文字列データ用クラスおよび暗黙的に共有されるクラスの一部です。
注意:このクラスの関数はすべてリエントラントです。
パブリック関数
QCollator() | |
QCollator(const QLocale &locale) | |
QCollator(const QCollator &other) | |
QCollator(QCollator &&other) | |
~QCollator() | |
Qt::CaseSensitivity | caseSensitivity() const |
int | compare(QStringView s1, QStringView s2) const |
int | compare(const QString &s1, const QString &s2) const |
int | compare(const QChar *s1, qsizetype len1, const QChar *s2, qsizetype len2) const |
bool | ignorePunctuation() const |
QLocale | locale() const |
bool | numericMode() const |
void | setCaseSensitivity(Qt::CaseSensitivity cs) |
void | setIgnorePunctuation(bool on) |
void | setLocale(const QLocale &locale) |
void | setNumericMode(bool on) |
QCollatorSortKey | sortKey(const QString &string) const |
void | swap(QCollator &other) |
bool | operator()(QStringView s1, QStringView s2) const |
bool | operator()(const QString &s1, const QString &s2) const |
QCollator & | operator=(QCollator &&other) |
QCollator & | operator=(const QCollator &other) |
静的パブリック・メンバー
(since 6.3) int | defaultCompare(QStringView s1, QStringView s2) |
(since 6.3) QCollatorSortKey | defaultSortKey(QStringView key) |
詳細説明
QCollator はQLocale で初期化されます。 その後、そのロケールに適した順序で文字列を比較したりソートしたりするために使用できます。
QCollator オブジェクトは、std::sort() などのテンプレートベースのソートアルゴリズムと一緒に使用して、QString エントリを持つリストをソートすることができます。
QStringList sortedStrings(QStringList seq) { QCollator order; std::sort(seq.begin(), seq.end(), order); return seq; }
ロケールに加えて、照合の結果に影響するオプションのフラグをいくつか設定することができます。
POSIX フォールバック実装
Unixシステムでは、Qtは通常ICUを使用するようにコンパイルされます(macOSを除き、Qtは同等のApple APIをデフォルトで使用します)。しかし、ICU がコンパイル時に利用できなかったり、明示的に無効にされた場合、Qt は POSIX API のみを使用するフォールバックバックエンドを使用します。このバックエンドにはいくつかの制限があります:
- サポートされるロケールはQLocale::c() とQLocale::system() だけです。システムロケールの詳細については、
<locale.h>
ヘッダーの POSIX および C 標準ライブラリのマニュアルを参照してください。 - caseSensitivity(大文字小文字を区別した照合のみ可能です。
- numericMode() およびignorePunctuation() はサポートされていません。
サポートされていないオプションを使用すると、アプリケーションの出力に警告が出力されます。
メンバ関数のドキュメント
QCollator::QCollator()
デフォルトロケールの照合ロケールを使用して QCollator を構築します。
システムロケールをデフォルトロケールとして使用する場合、それ以外の照合順序ロケールを持つことがあります (例えば Unix では、LC_COLLATE が LANG と異なる環境に設定されている場合など)。それ以外のロケールは、それ自身の照合順序ロケールである。
setLocale(),QLocale::collation(),QLocale::setDefault()も参照ください 。
[explicit]
QCollator::QCollator(const QLocale &locale)
与えられたlocale を使用して QCollator を構築します。
setLocale()も参照して ください。
QCollator::QCollator(const QCollator &other)
other のコピーを作成します。
[noexcept]
QCollator::QCollator(QCollator &&other)
Move コンストラクタ。other からこのコレーターに移動します。
注意: 移動元のオブジェクトother は、部分的に形成された状態に置かれます。この状態では、有効な操作は破棄と新しい値の割り当てのみです。
[noexcept]
QCollator::~QCollator()
この collator を破棄します。
Qt::CaseSensitivity QCollator::caseSensitivity() const
collator の大文字と小文字の区別を返します。
設定されるまで、デフォルトは大文字小文字を区別します。
注意: C ロケールでは、大文字小文字を区別する場合、すべての小文字はすべての大文字の後にソートされます。したがって、"Zap "はCロケールでは "ape "の前にソートされるが、他のほとんどのロケールでは後にソートされる。
setCaseSensitivity()も参照のこと 。
int QCollator::compare(QStringView s1, QStringView s2) const
s1 とs2 を比較する。
s1 がs2 より小さい場合は負の整数を、s2 より大きい場合は正の整数を、等しい場合はゼロを返す。
int QCollator::compare(const QString &s1, const QString &s2) const
これはオーバーロードされた関数です。
int QCollator::compare(const QChar *s1, qsizetype len1, const QChar *s2, qsizetype len2) const
これはオーバーロードされた関数である。
s1 とs2 を比較する。len1 とlen2 は、s1 とs2 が指すQChar 配列の長さを指定する。
s1 がs2 より小さい場合は負の整数を、s2 より大きい場合は正の整数を、等しい場合はゼロを返します。
注意: Qt 6.4 より前のバージョンでは、length 引数の型はqsizetype
ではなくint
でした。
[static, since 6.3]
int QCollator::defaultCompare(QStringView s1, QStringView s2)
文字列s1 とs2 を比較し、ソート順を返します。この関数は、デフォルトで構成されたQCollator オブジェクトに対してcompare() と同じ操作を行います。
この関数は Qt 6.3 で導入されました。
compare() およびdefaultSortKey()も参照してください 。
[static, since 6.3]
QCollatorSortKey QCollator::defaultSortKey(QStringView key)
文字列key のソートキーを返します。この関数は、デフォルトで構成されたQCollator オブジェクトに対してsortKey() と同じ操作を行います。
この関数は Qt 6.3 で導入されました。
sortKey() およびdefaultCompare()も参照してください 。
bool QCollator::ignorePunctuation() const
照合時に句読点や記号を無視するかどうかを返します。
true
の場合、各文字列から句読点や記号がすべて取り除かれたものとして文字列が比較されます。
setIgnorePunctuation()も参照 。
QLocale QCollator::locale() const
照合器のロケールを返します。
コンストラクタで指定しない限り、あるいはsetLocale() をコールしない限り、 システムのデフォルトの照合ロケールが使用されます。
setLocale() およびQLocale::collation()も参照 。
bool QCollator::numericMode() const
数値ソートが有効な場合はtrue
を返し、そうでない場合はfalse
を返す。
true
の場合、数字は数字として認識され、算術順にソートされます。例えば、100は99の後にソートされる。false
の場合、数値は語彙順でソートされ、100は99の前にソートされる(1が9の前にあるため)。デフォルトでは、このオプションは無効になっている。
setNumericMode()も参照 。
void QCollator::setCaseSensitivity(Qt::CaseSensitivity cs)
照合器の大文字小文字の区別をcs に設定します。
caseSensitivity() も参照 。
void QCollator::setIgnorePunctuation(bool on)
on がtrue
の場合、句読点と記号を無視し、false
の場合、句読点と記号に注意を払います。
ignorePunctuation()も参照 。
void QCollator::setLocale(const QLocale &locale)
照合器のロケールをlocale に設定します。
locale()も参照 。
void QCollator::setNumericMode(bool on)
on がtrue
の場合、数値ソート・モードを有効にします。
numericMode()も参照 。
QCollatorSortKey QCollator::sortKey(const QString &string) const
string の sortKey を返します。
ソートキーの作成は、compare() メソッドを直接使用するよりも多少遅くなります。しかし、文字列を繰り返し比較する場合 (たとえば文字列のリスト全体をソートする場合など) は、文字列ごとにソートキーを作成し、そのキーを使ってソートしたほうが高速になります。
注意: DarwinのC (POSIX)ロケールではサポートされていません。
[noexcept]
void QCollator::swap(QCollator &other)
この照合器をother に置き換える。この関数は非常に高速で、失敗することはない。
bool QCollator::operator()(QStringView s1, QStringView s2) const
QCollator は、ソートアルゴリズムの比較関数として使うことができる。この関数は、s1 がs2 よりも先にソートされていればtrue
を返し、そうでなければfalse
を返す。
compare()も参照のこと 。
bool QCollator::operator()(const QString &s1, const QString &s2) const
これはオーバーロードされた関数である。
[noexcept]
QCollator &QCollator::operator=(QCollator &&other)
Move-other をこのQCollator インスタンスに代入する。
注意: 移動元のオブジェクトother は部分的に形成された状態に置かれ、有効な操作は破棄と新しい値の割り当てのみである。
QCollator &QCollator::operator=(const QCollator &other)
この照合器にother を割り当てます。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。