空字符串是所有字符串中的"最小"字符串 - 也就是说,它比任何非空字符串都要小.
§21.4.8.4[string :: op <]:
Run Code Online (Sandbox Code Playgroud)template<class charT, class traits, class Allocator> bool operator< (const basic_string<charT,traits,Allocator>& lhs, const basic_string<charT,traits,Allocator>& rhs) noexcept;1 返回:
lhs.compare(rhs) < 0.
§21.4.7.9[string :: compare]:
Run Code Online (Sandbox Code Playgroud)int compare(const basic_string& str) const noexcept;1种效果:确定有效长度
rlen的字符串的比较作为最小的size()和str.size().然后该函数通过调用比较两个字符串traits::compare(data(), str.data(), rlen).2 返回:如果比较结果非零,则返回非零结果.否则,返回表72中指示的值.
表72 - compare()结果
Run Code Online (Sandbox Code Playgroud)Condition Return Value size() < str.size() < 0 size() == str.size() 0 size() > str.size() > 0
对于空字符串e和非空字符串之间的任何比较ne,rlen为零,在这种情况下traits::compare()指定返回零*.因此,e.compare(ne)每个表72 的结果总是小于零,并且e < ne始终为真.
* 如果"对于[0,n)中的每个i 为真" ,则指定字符特征的compare()函数返回零X::eq(p[i],q[i])(§21.2.1[char.traits.require],表62); 当时n == 0,范围是空的,条件是空的.
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |