STL函数
来源:互联网 发布:霍光传不可不读 知乎 编辑:程序博客网 时间:2024/05/22 17:21
泛型算法:
1.find(开始索引,结束索引,查找值)。
2.copy(开始索引,结束索引,back_inserter(容器))。back_inserter成为iterator的适配器:它使得元素被插入到作为实参的vector的尾部。
3.sort(开始索引,结束索引)。
4.unique(开始索引,结束索引)。只是去掉相邻元素的重复值。操作后容器的长度不会变,返回一个iterator指向废弃部分的开始出。例如:01123211经过 sort()变成01111223在经过unique()变成01231223。其中1223就是废弃部分,返回的iterator指向废弃部分的1。
5.stable_sort(开始索引,结束索引,函数对象)。
6.count_if(开始索引,结束索引,函数对象)。函数对象的返回值为True才能使用泛型算法。
7.remove()
8.for_each()把函数指针或是函数对象应用在由一对iterator标记的容器的每个元素上。
9.list::merge()。merger要求两个list都需要已序。
排序算法:
对所有元素排序:
void sort(RandomAccessIterator beg, RandomAccessIterator end )
void sort(RandomAccessIterator beg, RandomAccessIterator end, BinaryPredicate op)
void stable_sort(RandomAccessIterator beg, RandomAccessIterator end )
void stable_sort(RandomAccessIterator beg, RandomAccessIterator end, BinaryPredicate op)
局部排序:
void partial_sort(RandomAccessIterator beg, RandomAccessIterator sortend, RandomAccessIterator end)
void partial_sort(RandomAccessIterator beg, RandomAccessIterator sortend, RandomAccessIterator end, BinaryPredicate op)
RandomAccessIterator patrial_sort_copy(InputIterator sourceBeg, InputIterator sourceEnd, RandomAccessIterator destBeg,
RandomAccessIterator destEnd)
RandomAccessIterator patrial_sort_copy(InputIterator sourceBeg, InputIterator sourceEnd, RandomAccessIterator destBeg,
RandomAccessIterator destEnd, BinaryPredicate op )
根据第n个元素排序:
void nth_element(RandomAccessIterator beg, RandomAccessIterator nth, RandomAccessIterator end)
void nth_element(RandomAccessIterator beg, RandomAccessIterator nth, RandomAccessIterator end, BinaryPredicate op)
Heap算法:
make_heap()
push_heap()
pop_heap()
sort_heap()
已序区间算法:
搜寻元素:
检查某个元素是否存在:
bool binary_search(FordwardIterator beg, ForwardIterator end, const T& value)
bool binary_search(FordwardIterator beg, ForwardIterator end, const T& value, BinaryPredicate op)
检查若干个元素是否存在:
bool includes(InputIterator1 beg, InputIterator1 end, InputIterator2 searchBeg, InputIterator2 searchEnd)
bool includes(InputIterator1 beg, InputIterator1 end, InputIterator2 searchBeg, InputIterator2 searchEnd, BinaryPredicate op)
搜寻第一个或最后一个可能位置:
FordwardIterator lower_bound(FordwardIterator beg, ForwardIterator end, const T& value)
FordwardIterator lower_bound(FordwardIterator beg, ForwardIterator end, const T& value, BinaryPredicate op)
FordwardIterator upper_bound(FordwardIterator beg, ForwardIterator end, const T& value)
FordwardIterator upper_bound(FordwardIterator beg, ForwardIterator end, const T& value, BinaryPredicate op)
搜寻第一个和最后一个可能位置:
pair
equal_range(FordwardIterator beg, FordwardIterator end, const T&value)
pair
equal_range(FordwardIterator beg, FordwardIterator end, const T&value, BinaryPredicate op)
Tips:
1.内置数组不支持erase()操作,所以unique()算法不太适合于内置数组类型。
2. 关联容器,如map,set,在内部维护元素的排序关系,以便允许快速查找或获取。因此不允许在关联容器上应用重新排序的泛型算法,如:sort()或 partition(),如果重新排序关联容器中的元素,我们必须先把它拷贝到顺序容器中,如vector或list。
3.list容器时一个双向链表,不支持随即存储,所以merge(),remove(),reserves(),sort(),unique(),最好不要应用于list对象上。
- STL函数
- STL函数
- STL 函数
- STL函数
- stl函数
- STL--函数对象
- STL vector 辅助函数
- STL 函数指针
- STL函数对象
- STL仿函数
- STL算法函数总结
- 函数模版(STL)
- stl vector unique函数
- STL模版函数
- 浅谈STL仿真函数
- 【STL】仿函数细节
- STL sort函数简介
- stl string常用函数
- 获取中文汉字首拼音字母
- list control排序问题
- 博客“评论王”评选活动开始啦!
- Windows终止线程运行的四种方法
- GetSystemMetrics 参数介绍
- STL函数
- P480A数字音箱处理器-2013款
- MYSQL初学者使用指南
- 统计一个文件的单词的个数(2)
- C++/CLI中,托管代码与本机代码销毁顺序
- JAVA 中的IO流
- Ubuntu开启root用户及其它登陆问题的解决
- linux网络配置
- 删除2003默认的共享文件夹