Namespaces
Variants

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)