Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
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,
                       constexpr int compare( const CharT* s, size_type count2 ) const;
(5) (seit C++17)
constexpr int compare( size_type pos1, size_type count1,
                       constexpr int compare( size_type pos1, size_type count1, const CharT* s, size_type count2 ) const;
(6) (seit C++17)

Vergleicht zwei Zeichensequenzen.

1) Die Länge rlen der zu vergleichenden Sequenzen ist das Minimum 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 wie 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)).

Inhalt

[bearbeiten] Parameter

v - zu vergleichender View
s - Zeiger auf die zu vergleichende Zeichenkette
count1 - Anzahl der Zeichen dieses Views, die verglichen werden sollen
pos1 - Position des ersten zu vergleichenden Zeichens in diesem View
count2 - Anzahl der Zeichen des gegebenen Views, die verglichen werden sollen
pos2 - Position des ersten Zeichens des gegebenen Views, das verglichen werden soll

[bearbeiten] Rückgabewert

Negativer Wert, wenn dieser View kleiner ist als die andere Zeichensequenz, Null, wenn beide Zeichensequenzen gleich sind, positiver Wert, wenn dieser View größer ist als die andere Zeichensequenz.

[bearbeiten] Komplexität

1) Linear zur Anzahl der verglichenen Zeichen.

[bearbeiten] 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);
}

[bearbeiten] Siehe auch

vergleicht zwei Strings
(public member function of std::basic_string<CharT,Traits,Allocator>) [bearbeiten]
(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 Zeichenansichten lexikographisch
(Funktionsschablone) [edit]