旧版手动对比算法出了问题 #1

Closed
opened 2022-04-07 08:32:47 +08:00 by lensfrex · 0 comments
Owner

return strcoll(this->data, compareString.data) > 0;

如果在这里要手动做比较的话应该是要这样写的:

    int compareLength = std::min(compareString.length, length);
    for (int i = 0; i < compareLength; ++i) {
        if (data[i] != compareString.data[i]) {
            return data[i] > compareString.data[i];
        }
    }

    return false;
https://git.ciduid.top/lensfrex/cpp-work/src/commit/e22d05f823c365e1bf044bb678e12de0d1e3eafd/work20220401/neoString/CString.cpp#L162 如果在这里要手动做比较的话应该是要这样写的: ``` int compareLength = std::min(compareString.length, length); for (int i = 0; i < compareLength; ++i) { if (data[i] != compareString.data[i]) { return data[i] > compareString.data[i]; } } return false; ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
lensfrex/cpp-work#1
No description provided.