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
Diesen Code ausführen
#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) |