字符串compare何时停止比较?(标准)
When does the string.compare stops comparing? (std)
我知道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
被描述为丢弃经过不匹配的字符比较的值,但它是否真的读取了字符没有进一步详细说明。
相关文章:
- 标准::可选枚举的比较运算符
- 标准::p riority_queue 的自定义比较器背后的逻辑
- 如果要求比较器是严格的总排序,而不仅仅是严格的弱排序,C++标准算法会更快吗?
- 定义具有非标准签名的自定义映射比较器
- 如何比较标准::地图中的所有项目?
- 如何比较time_t和标准::文件系统::file_time_type
- 解释标准库排序函数C++的比较谓词的工作原理?
- 无法使用比较器初始化标准::函数
- C++是否保证标准容器比较中操作数的顺序?
- C 是否具有对两个STD :: sets,vectors等进行三角比较的标准方法
- 标准::set_intersection 带自定义比较器
- 标准::lower_bound的比较函数
- 标准::元组成员逐个成员比较失败
- C 通用树按两个标准进行比较
- 标准::地图比较功能
- 标准库是否有比较器反转机制
- 将标准::设置与自定义比较器进行比较
- 为什么这种提升::容器::字符串和标准::字符串比较没有按预期工作?
- C++ 如何使用标准::根据类函数使用比较器
- 如何比较两个比较两个标准::设置