在C++参考中string::compare,有以下重载:
int compare ( size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2 ) const;
Run Code Online (Sandbox Code Playgroud)
它有两个参数n1以及n2它在我眼里始终应等于或函数返回一个int等于true(字符串::比较的返回值为0(假)表示相同的字符串).它是否正确?如果没有,你能提供一个例子来说明一个特定情况,false如果比较不等长度(n1 != n2),那么比较会是什么?
谢谢!
在我眼中应始终相等或函数返回一个等于false的int
比较是一个三值比较:负/零/正是重要的返回值,而不仅仅是真/假.它返回一个int等于假,如果字符串是平等的,没有,如果他们不.
如果你是词法排序(子)不同长度的字符串,compare将告诉你它们的顺序.
如果您关心的是(子)字符串相等,那么不同的长度意味着不相等.作为优化,您可以跳过调用compareif n1 != n2.