您的位置:首页 > 编程语言 > C语言/C++

[书摘]c/c++中的一些算法

2009-07-06 16:34 183 查看
算法:除非是特别说明,否则以下的算法都是在<algorithm>中定义的:

accumulate(b,e,t):把区间[b,e)中的元素的总和加上t之后存储在t中。是在<numeric>中定义的。

find(b,e,t) find_if(b,e,p) search(b,e,b2,e2):在序列[b,e)中查找一个特定值的算法。算法find查找值t; find_if算法根据谓词p来检查每一个元素; 算法search查找由[b2,e2)所指示的序列。

copy(b,e,d) remove_copy(b,e,d,t) remove_copy_if(b,e,d,p):这些算法把[b,e)所指示的序列复制到由d指示的目的地中。算法copy复制了整个序列;remove_copy复制了所有不等于t的元素;remove_copy_if则复制了所有使谓词p为假的元素。

remove_if(b,e,p):排列容器以使在区间[b,e)中使谓词p为假的元素位于这个域的头部。返回一个迭代器,这个迭代器指示了位于那些不被“删除”的元素之后的那个位置。

remove(b,e,t):作用与remove_if一样,但是检测了哪些元素不等于值t。

transform(b,e,d,f):根据域[b,e)中的元素运行函数f,把f的结果存储在d中。

partition(b,e,p) stable_partition(b,e,p):以谓词p为基础从而划分在域[b,e)中的元素以使那些使谓词为真的元素处于容器头部。返回一个迭代器,这个迭代器指示了第一个令谓词为假的元素。或者,如果对所有的元素谓词都是true,那么就返回e。stable_partition会让在每一个区域内的元素的输入顺序保持不变。

摘自《Accelerated C++》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: