From 81c9d3cfe5ef7dfedc9519326cb86af7d5f3346d Mon Sep 17 00:00:00 2001 From: lensferno Date: Tue, 5 Apr 2022 09:20:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E4=BF=AE=E6=94=B9=EF=BC=9A<=E5=8F=B7?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- work20220401/neoString/CString.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/work20220401/neoString/CString.cpp b/work20220401/neoString/CString.cpp index 3aa1b71..45c6f7d 100644 --- a/work20220401/neoString/CString.cpp +++ b/work20220401/neoString/CString.cpp @@ -3,6 +3,8 @@ // #include +#include + #include "CString.h" /* @@ -40,7 +42,7 @@ bool CString::operator==(const CString &source) const { } // 以上情况都不符合时才进行逐字比较 - int compareLength = source.length < length ? source.length : length; + int compareLength = std::min(source.length, length); for (int i = 0; i < compareLength; ++i) { if (data[i] != source.data[i]) { return false; @@ -107,17 +109,13 @@ CString::CString(const CString &source) : CString(source.data, source.length) {} * 按照字典顺序逐字对比 */ bool CString::operator<(const CString &source) const { - // 这部分类似于前边==重载的前置判断 - if (source.length != length || data == nullptr) { + // 这部分类似于前边==重载的前置判断,如果本对象数据为null或者两对象数据是一回事就直接false + if (data == nullptr || (source.length != length && source.data == data)) { return false; - } else { - if (source.data == data) { - return true; - } } // 以上情况都不符合时才进行逐字比较 - int compareLength = source.length < length ? source.length : length; + int compareLength = std::min(source.length, length); for (int i = 0; i < compareLength; ++i) { if (data[i] < source.data[i]) { return true;