std::char_traits<char>::compare, std::char_traits<wchar_t>::compare, std::char_traits<char8_t>::compare, std::char_traits<char16_t>::compare, std::char_traits<char32_t>::compare

来自cppreference.com


static int compare( const char_type* s1, const char_type* s2,
                    std::size_t count );
(C++17 起为 constexpr)

比较字符串 s1s2 的首 count 个字符,比较按字典序进行。

如果 count 为零,那么认为字符串相等。

对字符特征的关于 X::compare 的通用要求请参考字符特征 (CharTraits)

参数

s1, s2 - 指向要比较的字符串的指针
count - 要比较来自每个字符串的字符数

返回值

s1 小于 s2 时返回负值。

s1 等于 s2 时返回 0

s1 大于 s2 时返回正值。

复杂度

count 成线性。

注解

返回值通过字典序确定。正式而言,返回值按如下规则确定:

  • 若对于 [0count) 中的每个 ieq(s1[i], s2[i]) 均为 true 则返回 0
  • 否则,若对于 [0count) 中的某个 ilt(s1[i], s2[i])true 且对于 [0i) 中的每个 jeq(s1[j], s2[j]) 均为 true 则返回负值。
  • 否则返回正值。

参阅

[静态]
比较两个字符
(公开静态成员函数) [编辑]