GeezerVison is showing cpprefjp.github.io — std::basic_string::compare - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月25日 12時11分17秒 (JST)
Akira Takahashi
が更新
履歴
編集
function
<string>
std:: basic_string:: compare
int compare ( const basic_string & str ) const ; // (1) C++98
int compare ( const basic_string & str ) const noexcept ; // (1) C++11
constexpr int
compare ( const basic_string & str ) const noexcept ; // (1) C++20
int
compare ( size_type pos1 ,
size_type n1 ,
const basic_string & str ) const ; // (2) C++98
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const basic_string & str ) const ; // (2) C++20
int
compare ( size_type pos1 ,
size_type n1 ,
const basic_string & str ,
size_type pos2 ,
size_type n2 ) const ; // (3) C++98
int
compare ( size_type pos1 ,
size_type n1 ,
const basic_string & str ,
size_type pos2 ,
size_type n2 = npos ) const ; // (3) C++14
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const basic_string & str ,
size_type pos2 ,
size_type n2 = npos ) const ; // (3) C++20
int compare ( const charT * s ) const ; // (4) C++98
constexpr int compare ( const charT * s ) const ; // (4) C++20
int
compare ( size_type pos1 ,
size_type n1 ,
const charT * s ) const ; // (5) C++98
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const charT * s ) const ; // (5) C++20
int
compare ( size_type pos1 ,
size_type n1 ,
const charT * s ,
size_type n2 ) const ; // (6) C++98
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const charT * s ,
size_type n2 ) const ; // (6) C++20
// string_view を引数に取るオーバーロード
template < class T >
int
compare ( const T & t ) const noexcept ( 下記参照 ); // (7) C++17
template < class T >
constexpr int
compare ( const T & t ) const noexcept ( 下記参照 ); // (7) C++20
template < class T >
int
compare ( size_type pos1 ,
size_type n1 ,
const T & t ) const ; // (8) C++17
template < class T >
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const T & t ) const ; // (8) C++20
template < class T >
int
compare ( size_type pos1 ,
size_type n1 ,
const T & t ,
size_type pos2 ,
size_type n2 = npos ) const ; // (9) C++17
template < class T >
constexpr int
compare ( size_type pos1 ,
size_type n1 ,
const T & t ,
size_type pos2 ,
size_type n2 = npos ) const ; // (9) C++20
概要
他の文字列との比較を行う。
テンプレートパラメータ制約
(7), (8), (9) : 以下の両方を満たしていること
効果
戻り値
(1) : 比較結果が非0を返した場合は、比較結果をそのまま返す。そうでなければ、以下の条件に従って戻り値を返す:
(2) : basic_string(*this, pos1, n1).compare(str) と等価
(3) : basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)) と等価
(4) : compare(basic_string(s)) と等価
(5) : basic_string(*this, pos, n1).compare(basic_string(s)) と等価
(6) : basic_string(*this, pos, n1).compare(basic_string(s, n2)) と等価
(7) : (1)と同様の結果を返す。return basic_string_view<charT, traits>(*this).compare (t);と等価。
(8) : basic_string_view<charT, traits>(*this).substr (pos1, n1).compare (t) と等価
(9) : 以下と等価。
例外
(7) : noexcept(is_nothrow_convertible_v<const T&, basic_string_view<charT, traits>>)が指定される
例
出力例
0
1
参照