string 的compare和== 是一样的吗?

butterflygogogo 2010-11-21 05:26:47
在stl中string
比较两个string是否相等的话 compare和== 是一样的吗?
...全文
646 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gules 的回复:]

==操作符是inline调用compare函数,效果上是一样的;效率上就看编译器是否真的inline化了,如果是则开销相同,否则==就多一次函数调用的开销。
[/Quote]
+1
AAA20090987 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gules 的回复:]
==操作符是inline调用compare函数,效果上是一样的;效率上就看编译器是否真的inline化了,如果是则开销相同,否则==就多一次函数调用的开销。
[/Quote]

顶这句
gules 2010-11-22
  • 打赏
  • 举报
回复
==操作符是inline调用compare函数,效果上是一样的;效率上就看编译器是否真的inline化了,如果是则开销相同,否则==就多一次函数调用的开销。
yaoli126126 2010-11-22
  • 打赏
  • 举报
回复
==是重载 里面再调用compare 效率会低点
Metrosexual 2010-11-22
  • 打赏
  • 举报
回复
一样的,可以直接比较!
starnight1981 2010-11-22
  • 打赏
  • 举报
回复
当然是一样的哦
赵4老师 2010-11-22
  • 打赏
  • 举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
bingerhoo 2010-11-21
  • 打赏
  • 举报
回复
== 模板会不会效率太低?
老邓 2010-11-21
  • 打赏
  • 举报
回复
不一样,理论上,==的效率要低些。
源码面前,了无秘密!
/**
* @brief Test equivalence of two strings.
* @param lhs First string.
* @param rhs Second string.
* @return True if @a lhs.compare(@a rhs) == 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
inline bool
operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
const basic_string<_CharT, _Traits, _Alloc>& __rhs)
{ return __lhs.compare(__rhs) == 0; }
某某9 2010-11-21
  • 打赏
  • 举报
回复
一样 回复内容太短了!
funnyone 2010-11-21
  • 打赏
  • 举报
回复
一样,compare重载啦很多参数。。你看看
qq120848369 2010-11-21
  • 打赏
  • 举报
回复
看返回值

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧