随笔 - 5  文章 - 1  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(2)

随笔档案(5)

文章分类(3)

文章档案(3)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

条款45:注意countfindbinary_searchlower_boundupper_boundequal_range的区别

       对无序区间的查找,我们当然是find,只有当需要统计拷贝的个数,count才有意义。如果对有序区间binary_search告诉你是否有。如果要知道位置,equal_range是一个好的选择。对有序需要的统计当然distance配合equal_range当然要比count的效率高。

1.       期望值是否存在?

(1) 无序区间:find

(2) 有序区间:binary_search

(3) set或者mapcount

(4) multiset或者multimapfind

2.       期望值是否存在?如果有,第一个等于这个值的对象在哪里?

(1) 无序区间:find

(2) 有序区间:equal_range

(3) set或者mapcount

(4) multiset或者multimapfind或者lower_bound

3.       第一个不在期望值之前的对象在哪里?

(1) 无序区间:find_if

(2) 有序区间:lower_bound

(3) set或者maplower_bound

(4) multiset或者multimaplower_bound

4.       第一个在期望值之后的对象在哪里?

(1) 无序区间:find_if

(2) 有序区间:upper_bound

(3) set或者mapupper_bound

(4) multiset或者multimapupper_bound

5.       有多少对象等于期望值?

(1) 无序区间:count

(2) 有序区间:equal_range,然后distance

(3) set或者mapcount

(4) multiset或者multimapcount

6.       等于期望值的所有对象在哪里?

(1) 无序区间:find(迭代)

(2) 有序区间:equal_range

(3) set或者mapequal_range

(4) multiset或者multimapequal_range

       当然,序列容器要用泛型算法,而关联容器用成员函数。

posted on 2007-06-01 09:30 Tempwmk 阅读(554) 评论(0)  编辑 收藏 引用 所属分类: cpp

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理