インスタンスメソッド


lexicographicallyPrecedes(_:by:)


与えられた述語を使用して要素を比較し、シーケンスが辞書 (dictionary) 順で別のシーケンスに先行するかどうかを示すブール値を返します。


System Swift iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+

macOS 11.0+ tvOS 14.0+ visionOS 1.0+ watchOS 7.0+

func lexicographicallyPrecedes<OtherSequence>(
_ other: OtherSequence,
by areInIncreasingOrder: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Bool where OtherSequence : Sequence, Self.Element == OtherSequence.Element




パラメータ


other

このシーケンスと比較すべきシーケンス。


areInIncreasingOrder

最初の引数を 2 番目の引数の前に並べる必要がある場合は true を返し、それ以外の場合は false を返す述語。



戻り値


このシーケンスが、areInIncreasingOrder に従って順序付けられた辞書内で other のシーケンスより前にある場合は true、それ以外の場合は false



議論


述語は、要素に対して 厳密に弱い順序付け でなければなりません。つまり、任意の要素 a、b、c について、以下の条件が満たされていなければなりません。


  • areInIncreasingOrder(a, a) は常に false です。(非再帰性 )

  • areInIncreasingOrder(a, b)areInIncreasingOrder(b, c) が両方とも true である場合、areInIncreasingOrder(a, c)true です。(推移的比較可能性)

  • 述語に従って、どちらの要素も他方より前に順序付けられていない場合、2 つの要素は 比較不可能 です。ab が比較不可能で、bc が比較不可能である場合、ac も比較不可能です。(推移的比較不可能)

  • 注意

    このメソッドは、Unicode とは関係のない辞書式順序付けという数学的概念を実装します。エンドユーザに提示するために文字列を並べ替える場合は、代わりにローカライズされた比較を実行する String API を使用してください。

    複雑さ:

    O(m)、ここで、m はシーケンスの長さと oher の長さの小さい方です。













    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ