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) | (начиная с C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
basic_string_view v ) const ; |
(2) | (начиная с C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1, basic_string_view v,
size_type pos2, size_type count2 ) const ; |
(3) | (начиная с C++17) |
|
constexpr
int
compare
(
const
CharT
*
s
)
const
;
|
(4) | (начиная с C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
const CharT * s ) const ; |
(5) | (начиная с C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
const CharT * s, size_type count2 ) const ; |
(6) | (начиная с C++17) |
Сравнивает две последовательности символов.
1)
Длина
rlen
сравниваемых последовательностей является меньшей из величин
size
(
)
и
v.
size
(
)
. Функция сравнивает два представления, вызывая
traits
::
compare
(
data
(
)
, v.
data
(
)
, rlen
)
, и возвращает значение в соответствии со следующей таблицей:
| Условие | Результат | Возвращаемое значение | |
|---|---|---|---|
Traits::compare(data(), v.data(),
rlen
) < 0
|
this
меньше
чем
v
|
< 0 | |
Traits::compare(data(), v.data(),
rlen
) == 0
|
size() < v.size()
|
this
меньше
чем
v
|
< 0 |
size() == v.size()
|
this
равен
v
|
0 | |
size() > v.size()
|
this
больше
чем
v
|
> 0 | |
Traits::compare(data(), v.data(),
rlen
) > 0
|
this
больше
чем
v
|
> 0 | |
2)
Эквивалентно
substr
(
pos1, count1
)
.
compare
(
v
)
.
3)
Эквивалентно
substr
(
pos1, count1
)
.
compare
(
v.
substr
(
pos2, count2
)
)
.
4)
Эквивалентно
compare
(
basic_string_view
(
s
)
)
.
5)
Эквивалентно
substr
(
pos1, count1
)
.
compare
(
basic_string_view
(
s
)
)
.
6)
Эквивалентно
substr
(
pos1, count1
)
.
compare
(
basic_string_view
(
s, count2
)
)
.
Содержание |
Параметры
| v | - | представление для сравнения |
| s | - | указатель на строку символов для сравнения |
| count1 | - | количество символов этого представления для сравнения |
| pos1 | - | позиция первого символа в этом представлении для сравнения |
| count2 | - | количество символов заданного представления для сравнения |
| pos2 | - | позиция первого символа заданного представления для сравнения |
Возвращаемое значение
Отрицательное значение, если данное представление меньше другой символьной последовательности, ноль, если обе символьные последовательности равны, положительное значение, если данное представление больше другой символьной последовательности.
Сложность
1) Линейная по количеству сравниваемых символов.
Пример
Запустить этот код
#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); }
Смотрите также
|
сравнивает две строки
(публичная функция-член
std::basic_string<CharT,Traits,Allocator>
)
|
|
|
(C++17)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(C++20)
|
лексикографически сравнивает два string view
(шаблон функции) |