std::basic_string_view<CharT,Traits>::compare
Von cppreference.com
< cpp | string | basic string view
| 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
Führen Sie diesen Code aus
#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>) | |
| (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) |