std::basic_string_view<CharT,Traits>::compare
cppreference.net에서 발췌
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 | - | 주어진 뷰에서 비교할 첫 번째 문자의 위치 |
반환값
이 뷰가 다른 문자 시퀀스보다 작으면 음수 값, 두 문자 시퀀스가 같으면 0, 이 뷰가 다른 문자 시퀀스보다 크면 양수 값을 반환합니다.
복잡도
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>
의
public member function)
|
|
|
(C++17)
(removed in C++20)
(removed in C++20)
(removed in C++20)
(removed in C++20)
(removed in C++20)
(C++20)
|
두 string view를 사전식으로 비교함
(function template) |