C++ の文字列 == と compare() の違いは何ですか? 質問する

C++ の文字列 == と compare() の違いは何ですか? 質問する

私は使用に関する推奨事項をいくつか読んだばかりです

std::string s = get_string();
std::string t = another_string();

if( !s.compare(t) ) 
{

の代わりに

if( s == t )
{

私はほとんどの場合、最後のものを使用しています。慣れていて、自然で読みやすいからです。別の比較関数があることすら知りませんでした。より正確に言うと、== は compare() を呼び出すものだと思っていました。

違いは何でしょうか? どのような状況で、一方の方法が他方の方法よりも優先されるのでしょうか?

文字列が別の文字列と同じ値であるかどうかを知る必要がある場合のみを検討しています。

ベストアンサー1

標準規格では次のように述べられていますoperator==

21.4.8.2 演算子==

template<class charT, class traits, class Allocator>
bool operator==(const basic_string<charT,traits,Allocator>& lhs,
                const basic_string<charT,traits,Allocator>& rhs) noexcept;

戻り値: lhs.compare(rhs) == 0。

あまり違いはないようです!

おすすめ記事