std::basic_string_view<CharT,Traits>::compare
��自cppreference.com
| |
(1) | (C++17 起) |
| |
(2) | (C++17 起) |
| |
(3) | (C++17 起) |
| |
(4) | (C++17 起) |
| |
(5) | (C++17 起) |
| |
(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++20 移除)(C++20 移除)(C++20 移除)(C++20 移除)(C++20 移除)(C++20) |
以字典序比較兩個字符串視圖 (函數模板) |