std::basic_string_view<CharT,Traits>:: compare
From cppreference.net
<
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,
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
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) |