字符串compare何时停止比较?(标准)

When does the string.compare stops comparing? (std)

本文关键字:标准 比较 compare 何时停 字符串      更新时间:2023-10-16

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

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

好吧,标准不在乎,但比较的结果——标准只在乎这个——完全取决于第一个不匹配的字符。因此,对于任何实现来说,比较其他字符都是毫无意义的,除非如果更容易处理wrt到缓存或平台的单词大小,那么可能会增加几个字符。

未指定。

该标准规定rhs.compare(lhs)等同于char_traits::compare(&rhs[0], &lhs[0], min(rhs.size(), lhs.size())char_traits::compare被描述为丢弃经过不匹配的字符比较的值,但它是否真的读取了字符没有进一步详细说明。