小修改:<号判断的情况

main
lensfrex 2 years ago
parent 12cd67a899
commit 81c9d3cfe5
Signed by: lensfrex
GPG Key ID: 0F69A0A2FBEE98A0
  1. 14
      work20220401/neoString/CString.cpp

@ -3,6 +3,8 @@
//
#include <cstring>
#include <algorithm>
#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;

Loading…
Cancel
Save