string.compare什么时候停止比较? (STD)

时间:2012-09-04 19:59:14

标签: c++ string

我知道compare方法将返回一个整数值,表示两个字符串之间的差异(如果匹配则为0)。我的问题是,如果发现不匹配,它是否会在不匹配时停止比较,或者在指定之前完成比较?

它取决于编译器还是标准?我目前正在使用gcc 4.1.2

2 个答案:

答案 0 :(得分:3)

嗯,标准并不关心,但比较的结果 - 标准只关心它 - 完全取决于第一个不匹配的字符。所以比较其他实现对于任何实现来说都是毫无意义的,除非可能更多的字符,如果它更容易处理缓存或平台的字大小。

答案 1 :(得分:1)

未指定。

标准规定rhs.compare(lhs)等同于char_traits::compare(&rhs[0], &lhs[0], min(rhs.size(), lhs.size())char_traits::compare被描述为丢弃经过不匹配的字符比较值,但它是否实际读取字符不再详述。