最終更新日時(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

参照