C++ C++;:比较字典的字符串

C++ C++;:比较字典的字符串,c++,string,comparison,lexicographic,C++,String,Comparison,Lexicographic,当使用重写的bool运算符时,字符串是否按词典进行比较Yes 字符串的比较运算符是根据其traits::compare(即char\u traits::compare)(C++03 21.3.6.8)定义的,指定该运算符根据其参数的字典顺序返回值(21.1.1) 比较(p,q,n)。。。收益率:如果[0,n]中的每个i为0, 等式(p[i],q[i])为真,否则为负 如果对于[0,n]中的某些j, X::lt(p[j],q[j])是真的,并且对于 [0,j)X::eq(p[i],q[i])为真;

当使用重写的
bool运算符时,字符串是否按词典进行比较Yes

字符串的比较运算符是根据其
traits::compare
(即
char\u traits::compare
)(C++03 21.3.6.8)定义的,指定该运算符根据其参数的字典顺序返回值(21.1.1)

比较(p,q,n)。。。收益率:如果[0,n]中的每个i为0, 等式(p[i],q[i])为真,否则为负 如果对于[0,n]中的某些j, X::lt(p[j],q[j])是真的,并且对于 [0,j)X::eq(p[i],q[i])为真;否则为正值


实际上,这意味着比较字符串不能对区域设置敏感(在某些区域设置中可能是非字典式的,比如我的).

是的,它们是相同的。如果不执行字符串比较,则没有意义lexographically@EdChum:事实上,这是有道理的。有些地区的比较是不符合词典的。@jpalecek-Hmm,我想我总是会在西部(ASCII)地区想到这些事情,为这些信息干杯。
std::string str1 = "aabbcc"
std::string str2 = "bbaacc"

(str1 < str2) == std::lexicographical_compare(str1.begin(),str1.end(),str2.begin(),str2.end()) // is this statement true?