Namespaces
Variants

std::basic_string_view<CharT,Traits>:: compare

From 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 작음 < 0
Traits::compare(data(), v.data(), rlen ) == 0 size() < v.size() this 작음 < 0
size() == v.size() this 같음 0
size() > v.size() this > 0
Traits::compare(data(), v.data(), rlen ) > 0 this > 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)