• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <string>

    std::char_traits::compare

    static int compare(const char_type* s1, const char_type* s2, std::size_t n);           // C++14まで
    static constexpr int compare(const char_type* s1, const char_type* s2, std::size_t n); // C++17から
    

    概要

    2つの文字列を比較する。

    戻り値

    • 範囲[0, n)の各値i全てに対してeq(s1[i], s2[i]) == trueならば0を返す。
    • 範囲[0, n)のいずれかのiに対してlt(s1[i], s2[i]) == trueならば負の値を返す。
    • それ以外の場合は、正の値を返す。

    計算量

    線形時間

    #include <iostream>
    #include <string>
    
    int main()
    {
      std::cout << std::char_traits<char>::compare("abc", "abc", 3) << std::endl;
      std::cout << std::char_traits<char>::compare("aac", "abc", 3) << std::endl;
      std::cout << std::char_traits<char>::compare("abc", "aac", 3) << std::endl;
    }
    

    出力例

    0
    -1
    1
    

    参照