STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对 ...
分类:
其他好文 时间:
2016-11-21 12:35:34
阅读次数:
215
C++的迭代器是为了使算法独立于所使用的容器类型而设计的,也就是说,C++的STL算法不会因为受使用的容器类型而限制(ps:也不会受数据类型的限制,因为STL提供了模板)。C++的迭代器种类比较多,从概念描述上可分为输入迭代器、输出迭代器、正向迭代器、双向迭代器和随机访问迭代器,每个容器类都定义了自 ...
分类:
编程语言 时间:
2016-09-24 13:29:14
阅读次数:
138
STL算法的精髓在于 算法的 返回值!!! String: string是STL的字符串类型,通常用来表示字符串;C语言中一般用char* char*字符指针;string是类封装了char*,管理这个字符串,是一个char*型的容器; string不用考虑内存释放和越界,string管理char* ...
分类:
其他好文 时间:
2016-08-30 19:31:41
阅读次数:
149
replace(b, e, ov, nv)
replace_if(b, e, p, v)
// 一边复制一遍替换
replace_copy(b1, e1, b2, ov, nv)
replace_copy_if(b1, e1, b2, p, v) // 带有一个函数对象或者规则
#include
#include
#include
//
#include
using n...
分类:
编程语言 时间:
2016-08-22 09:34:07
阅读次数:
255
STL_算法_填充新值
fill(b, e, v)
fill(b, n, v)
generate(b, n, p)
generate_n(b, n, p)
#include
#include
#include
#include
//
#include
using namespace std;
int main()
{
list slist;
slist.push_ba...
分类:
编程语言 时间:
2016-08-21 22:56:11
阅读次数:
462
swap_ranges(b, e, b2)
注意:下列两种方法也是交换算法
1,容器的swap()成员函数 方法快
2,赋值操作
交换算法对所有容器适用
#include
#include
#include
#include
using namespace std;
int main()
{
vector ivec;
dequeideq;
for (in...
分类:
编程语言 时间:
2016-08-19 11:28:10
阅读次数:
212
STL-算法 修改性算法:
for_each() generate()
copy() generate_n()
copy_backwards() replace()
transform() replace_if()
merge() replace_copy()
swap_ranges() replace_copy_if()
fill()
fill_n()
for_ea...
分类:
编程语言 时间:
2016-08-19 10:03:39
阅读次数:
260
预定义的函数对象
negate() equal_to()
plus() not_equal_to()
minus() less()
multiplies() greater()
divides() less_equal()
modulus() greater_equal()
logical_not() logical_and()
logical_or()
#include
#i...
分类:
编程语言 时间:
2016-08-18 10:08:58
阅读次数:
161
next_permutation()
prev_permutation()
#include
#include
#include
// 排列组合开始之前一定要先排序
using namespace std;
int main()
{
vector ivec;
ivec.push_back(1);
ivec.push_back(2);
ivec.push_back(3);
fo...
分类:
编程语言 时间:
2016-08-17 09:04:05
阅读次数:
232
copy()
copy_backward()
以上两个对所有容器都适用的
注意:
1, 没有copy_if()算法,可以使用remove_copy_if()算法;
2,复制过程中要逆转元素次序,使用reverse_copy()算法;
3,把容器内所有元素赋值给另一个容器,要使用赋值操作符或者容器的assign()成员函数;
4,复制过程中删除某些元素,使用remove_copy()和...
分类:
编程语言 时间:
2016-08-17 00:14:41
阅读次数:
279