On this page
operator==,!=,<,<=,>,>=,<=>(std::basic_string)
Defined in header <string> |
||
|---|---|---|
Compare two basic_string objects |
||
| (1) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
|
(since C++20) | |
| (2) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
| (3) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
| (4) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
| (5) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
| (6) | ||
|
(until C++11) | |
|
(since C++11) (until C++20) |
|
|
(7) | (since C++20) |
Compare a basic_string object and null-terminated array of T |
||
| (8) | ||
|
(until C++20) | |
|
(since C++20) | |
|
(until C++20) | |
| (9) | ||
|
(until C++20) | |
|
(until C++20) | |
| (10) | ||
|
(until C++20) | |
|
(until C++20) | |
| (11) | ||
|
(until C++20) | |
|
(until C++20) | |
| (12) | ||
|
(until C++20) | |
|
(until C++20) | |
| (13) | ||
|
(until C++20) | |
|
(until C++20) | |
|
(14) | (since C++20) |
Compares the contents of a string with another string or a null-terminated array of CharT.
All comparisons are done via the compare() member function (which itself is defined in terms of Traits::compare()):
- Two strings are equal if both the size of
lhsandrhsare equal and each character inlhshas equivalent character inrhsat the same position. - The ordering comparisons are done lexicographically -- the comparison is performed by a function equivalent to
std::lexicographical_compareorstd::lexicographical_compare_three_way(since C++20).
basic_string objects.
basic_string object and a null-terminated array of CharT.
The return type of three-way comparison operators ( The |
(since C++20) |
Parameters
| lhs, rhs | - | strings whose contents to compare |
Return value
true if the corresponding comparison holds, false otherwise.
static_cast</*comp-cat*/>(lhs.compare(rhs) <=> 0).
Complexity
Linear in the size of the strings.
Notes
If at least one parameter is of type |
(since C++20) |
Example
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2064 | C++11 | whether overloads taking two basic_strings are noexcept was inconsistent;overloads taking a CharT* were noexcept but might raise UB |
made consistent; noexcept removed |
| LWG 3432 | C++20 | the return type of operator<=> was not required to be a comparison category type |
required |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string/operator_cmp