Namespaces
Variants

std::basic_string_view<CharT,Traits>:: compare

From cppreference.net
constexpr int compare ( basic_string_view v ) const noexcept ;
(1) (seit C++17)
constexpr int compare ( size_type pos1, size_type count1,
basic_string_view v ) const ;
(2) (seit C++17)
constexpr int compare ( size_type pos1, size_type count1, basic_string_view v,
size_type pos2, size_type count2 ) const ;
(3) (seit C++17)
constexpr int compare ( const CharT * s ) const ;
(4) (seit C++17)
constexpr int compare ( size_type pos1, size_type count1,
const CharT * s ) const ;
(5) (seit C++17)
constexpr int compare ( size_type pos1, size_type count1,
const CharT * s, size_type count2 ) const ;
(6) (seit C++17)

Vergleicht zwei Zeichenfolgen.

1) Die Länge rlen der zu vergleichenden Sequenzen ist der kleinere Wert von size ( ) und v. size ( ) . Die Funktion vergleicht die beiden Views durch Aufruf von traits :: compare ( data ( ) , v. data ( ) , rlen ) und gibt einen Wert gemäß der folgenden Tabelle zurück:
Bedingung Ergebnis Rückgabewert
Traits::compare(data(), v.data(), rlen ) < 0 this ist kleiner als v < 0
Traits::compare(data(), v.data(), rlen ) == 0 size() < v.size() this ist kleiner als v < 0
size() == v.size() this ist gleich v 0
size() > v.size() this ist größer als v > 0
Traits::compare(data(), v.data(), rlen ) > 0 this ist größer als v > 0
2) Entspricht substr ( pos1, count1 ) . compare ( v ) .
3) Entspricht substr ( pos1, count1 ) . compare ( v. substr ( pos2, count2 ) ) .
4) Entspricht compare ( basic_string_view ( s ) ) .
5) Entspricht substr ( pos1, count1 ) . compare ( basic_string_view ( s ) ) .
6) Entspricht substr ( pos1, count1 ) . compare ( basic_string_view ( s, count2 ) ) .

Inhaltsverzeichnis

Parameter

v - Ansicht zum Vergleichen
s - Zeiger auf die zu vergleichende Zeichenkette
count1 - Anzahl der zu vergleichenden Zeichen dieser Ansicht
pos1 - Position des ersten Zeichens in dieser Ansicht zum Vergleichen
count2 - Anzahl der zu vergleichenden Zeichen der gegebenen Ansicht
pos2 - Position des ersten Zeichens der gegebenen Ansicht zum Vergleichen

Rückgabewert

Negativer Wert, wenn diese Ansicht kleiner als die andere Zeichenfolge ist, null, wenn beide Zeichenfolgen gleich sind, positiver Wert, wenn diese Ansicht größer als die andere Zeichenfolge ist.

Komplexität

1) Linear in der Anzahl der verglichenen Zeichen.

Beispiel

#include <string_view>
int main()
{
    using std::operator""sv;
    static_assert("abc"sv.compare("abcd"sv) < 0);
    static_assert("abcd"sv.compare("abc"sv) > 0);
    static_assert("abc"sv.compare("abc"sv) == 0);
    static_assert(""sv.compare(""sv) == 0);
}

Siehe auch

vergleicht zwei Zeichenketten
(öffentliche Elementfunktion von std::basic_string<CharT,Traits,Allocator> )
(C++17) (entfernt in C++20) (entfernt in C++20) (entfernt in C++20) (entfernt in C++20) (entfernt in C++20) (C++20)
vergleicht zwei String-Views lexikographisch
(Funktionstemplate)