Namespaces
Variants

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

Von de.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 Folgen ist die kleinere von size() und v.size(). Die Funktion vergleicht die beiden Ansichten 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 zu 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) Äquivalent zu substr(pos1, count1).compare(v).
3) Äquivalent zu substr(pos1, count1).compare(v.substr(pos2, count2)).
4) Äquivalent zu compare(basic_string_view(s)).
5) Äquivalent zu substr(pos1, count1).compare(basic_string_view(s)).
6) Äquivalent zu substr(pos1, count1).compare(basic_string_view(s, count2)).

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)