C++ STL 算法列表
来源:互联网 发布:cf手游rpk赤焰盘龙数据 编辑:程序博客网 时间:2024/06/03 11:44
非修改性序列操作:
all_of
Test condition on all elements in range
any_of
Test if any element in range fulfills condition
none_of
Test if no elements fulfill condition
循环
for_each
Apply function to range
对序列中每个元素执行某项操作
查找
find
Find value in range
在序列中找出某个值第一次出现的位置
find_if
Find element in range
在序列中找出符合某谓词的第一个元素
find_if_not
Find element in range (negative condition)
find_end
Find last subsequence in range
在序列中找出子子序列的最后一次出现的位置
find_first_of
Find element from set in range
在序列中找出第一次出现指定值集中之值的位置
adjacent_find
Find equal adjacent elements in range
在序列中找出相邻的一对值
计数
count
Count appearances of value in range
在序列中统计某个值出现的次数
count_if
Return number of elements in range satisfying condition
在序列中统计与某谓词匹配的次数
比较
mismatch
Return first position where two ranges differ
找出两个序列相异的第一个元素
equal
Test whether the elements in two ranges are equal
两个序列中对应元素都相同时为真
is_permutation
Test whether range is permutation of another
搜索
search
Search range for subsequence
在序列中找出一个子序列的第一次出现的位置
search_n
Search range for elements
在序列中找出一值连续N次出现的位置
修改性序列操作:
复制
copy
Copy range of elements
从序列的第一个元素起进行复制
copy_n
Copy elements
copy_if
Copy certain elements of range
copy_backward
Copy range of elements backward
从序列的最后一个元素进行复制
move
Move range of elements
move_backward
Move range of elements backward
交换
swap
Exchange values of two objects
交换两个元素
swap_ranges
Exchange values of two ranges
交换指定范围的元素
iter_swap
Exchange values of objects pointed by two iterators
交换由迭代器所指的两个元素
变换
transform
Transform range
将某操作应用于指定范围的每个元素
替换
replace
Replace value in range
用一个给定值替换一些值
replace_if
Replace values in range
替换满足谓词的一些元素
replace_copy
Copy range replacing value
复制序列时用一给定值替换元素
replace_copy_if
Copy range replacing value
复制序列时替换满足谓词的元素
填充
fill
Fill range with value
用一给定值取待所有元素
fill_n
Fill sequence with value
用一给给定值取待前N个元素
生成
generate
Generate values for range with function
用一操作的结果取待所有元素
generate_n
Generate values for sequence with function
用一操作的结果取待前N个元素
删除
remove
Remove value from range
删除具有给定值的元素
remove_if
Remove elements from range
删除满足谓词的元素
remove_copy
Copy range removing value
复制序列时删除具有给定值的元素
remove_copy_if
Copy range removing values
复制序列时删除满足谓词的元素
唯一
unique
Remove consecutive duplicates in range
删除相邻的重复元素
unique_copy
Copy range removing duplicates
复制序列时删除相邻的重复元素
反转
reverse
Reverse range
反转元素的次序
reverse_copy
Copy range reversed
复制序列时反转元素的次序
环移
rotate
Rotate left the elements in range
循环移动元素
rotate_copy
Copy range rotated left
复制序列是循环移动元素
随机
random_shuffle
Randomly rearrange elements in range
采用均匀分布来随机移动元素
shuffle
Randomly rearrange elements in range using generator
划分:
is_partitioned
Test whether range is partitioned
partition
Partition range in two
将满足某谓词的元素都放到前面
stable_partition
Partition range in two - stable ordering
将满足某谓词的元素都放到前面并维持原顺序
partition_copy
Partition range into two
partition_point
Get partition point
排序:
sort
Sort elements in range
以很好的平均效率排序
stable_sort
Sort elements preserving order of equivalents
排序,并维持相同元素的原有顺序
partial_sort
Partially sort elements in range
将序列的前一部分排好序
partial_sort_copy
Copy and partially sort range
is_sorted
Check whether range is sorted
is_sorted_until
Find first unsorted element in range
nth_element
Sort element in range
将第N个元素放到它正确的位置
二分检索:(使用下面算法时,容器需要先sort排序)
lower_bound
Return iterator to lower bound
找到大于等于某值的第一次出现
upper_bound
Return iterator to upper bound
找到大于某值的第一次出现
equal_range
Get subrange of equal elements
找到(在不破坏顺序的前提下)可插入给定值的最大范围
binary_search
Test if value exists in sorted sequence
在有序序列中确定给定元素是否存在
集合算法:
归并
merge
Merge sorted ranges
归并两个有序序列
inplace_merge
Merge consecutive sorted ranges
归并两个接续的有序序列
序结构上的集合操作
includes
Test whether sorted range includes another sorted range
一序列为另一个序列的子序列时为真
set_union
Union of two sorted ranges
构造两个集合的有序并集
set_intersection
Intersection of two sorted ranges
构造两个集合的有序交集
set_difference
Difference of two sorted ranges
构造两个集合的有序差集
set_symmetric_difference
Symmetric difference of two sorted ranges
构造两个集合的有序对称差集(并-交)
堆:
push_heap
Push element into heap range
向堆中加入元素
pop_heap
Pop element from heap range
从堆中弹出元素
make_heap
Make heap from range
从序列构造堆
sort_heap
Sort elements of heap
给堆排序
is_heap
Test if range is heap
is_heap_until
Find first element not in heap order
最大小值计算:
min
Return the smallest
max
Return the largest
minmax
Return smallest and largest elements
min_element
Return smallest element in range
max_element
Return largest element in range
minmax_element
Return smallest and largest elements in range
其他:
lexicographical_compare
Lexicographical less-than comparison
next_permutation
Transform range to next permutation
prev_permutation
Transform range to previous permutation
如果有《C++ Primer》的可以参考“附录——算法简介”里也有简单介绍。
参考资料:
1. <algorithm> - C++ Reference2.C++ 之高效使用STL ( STL 算法分类)
3.c++ STL 算法列表
4.简单的程序诠释C++ STL算法
- c++ STL 算法列表
- C++ STL 算法列表
- C++ STL算法列表
- C++STL算法
- C++STL-算法transform
- C STL 之算法
- C++STL 常用算法
- C++STL算法简述
- C++--STL--transform算法
- 算法笔记--c++STL
- C++count算法(STL)
- C++STL之变异算法
- c++STL所有算法介绍
- 转:c++STL算法整理
- C++STL学习(10)STL算法(1)
- C++STL学习(11)STL算法(2)
- C++——STL排序算法介绍
- C++——STL所有算法介绍
- C#中缓存的使用
- windows 下搭建VPN
- Mac 截屏软件
- 使用TileMap制作游戏地图,在cocos2d-x中使用(一)
- Android之EditText 属性汇总
- C++ STL 算法列表
- Windows平台搭建Android开发环境
- 普通用户不需要密码重启机器
- 百度地图拖拽设置自定义坐标demo3个(后台添加、修改,前台显示)
- dlna
- HDU 1596——find the safest road
- C++静态函数
- Makefile详解(超级好)
- C语言简单示例(文件读写6)