Chinaunix首页 | 论坛 | 博客
  • 博客访问: 990873
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-20 11:31:15

比如 map 的第三个参数,使用 less_equal 和 less 有什么不同?
比如 sort 的第三个参数,使用 less_equal 和 less 有什么不同?
…………
答案原来是:STL中排序要求的都是strict weakly ordering,也就是只能用<和>,不能用<=和>=
阅读(1618) | 评论(7) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-20 11:33:50

Lau
有谁在ARM2410/2510上面跑过RDB ?我在2410上面跑过eXtremeDB  是个新手 GCC交叉编译很陌生 2510还没有试过!!请高人指点

资料请发:tonyjiangbest@tom.com 谢谢

网友评论2012-11-20 11:33:33

chenger
一个疑问:我看过SGI STL里sort的代码,感觉不是在元素数很大的时候才堆排序,而是当递归调用的深度超过一定范围(和元素个数有关),为了防止sort的性能退化,才进行堆排序,而不是元素个数一大就堆排序

网友评论2012-11-20 11:33:24

清风雨
关于你的那个测试示例:
VC8.0自带的STL库会提示错误,它需要左右的比较必需明确,不能是left ( op ) right成功,right ( op ) left 也成功。 <= 当 left == right时并不明确了。
你给的33正好和它的排序策略有关:元素数大于32时,最后会堆排序;不大于则是插入排序。(看来你肯定跑进去了,然后就取了个33试了一下)

gcc(也就是STLport版的STL)都没有问题。

网友评论2012-11-20 11:33:17

wmuu
effitive stl里头有详细介绍相等和等价的,对treeMap(应该是关联容器)来说一定要用less,或者大于。不能用<= or >=

网友评论2012-11-20 11:33:10

周星星
仅就sort而言,无论你给它什么比较函数,都无法保证相同元素的相对位置,必须使用 stable_sort