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;
}
10
#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