C++STL简介题库.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 8 2 2 2 3 7 4 3 8 5 2 2 3 4 7 2 2 3 3 4 5 7 8 5 7 2 2 2 2 3 3 3 4 4 5 7 7 8 运行结果: 标准C++库中的算法简介 * 数值算法 数值算法包括4个算法,分别为accumulate(累积算法)、partial_sum(累加部分元素和算法)、adjacent_difference(相邻元素差)和inner_product(内积算法)。我们使用数值算法需要包含numeric头文件。 标准C++库中的算法简介 * 例15-17:数值算法实例 #includeiostream #include vector #include numeric//所需要包含的头文件 using namespace std; const int n=6; int main() { int array[n]={2,2,1,5,3,6}; vectorint ivec1(array,array+n); vectorint ivec2(ivec1); ostream_iteratorint output(cout, ); //对序列进行求和累积 coutaccumulate(ivec1.begin(),ivec1.end(),0)endl; //对序列进行部分求和 partial_sum(ivec1.begin(),ivec1.end(),output); coutendl; //对序列求相邻元素的差 adjacent_difference(ivec1.begin(),ivec1.end(),output); coutendl; //对两个向量做内积 coutinner_product(ivec1.begin(),ivec1.end(),ivec2.begin(),0)endl; } 标准C++库中的算法简介 19 2 4 5 10 13 19 2 0 -1 4 -2 3 79 Press any key to continue 运行结果: 标准C++库中的算法简介 * 主要内容 STL概述 容器 迭代器 算法 函数对象 * 函数对象 在C++程序中,任何普通的函数、函数指针和任何重载了调用operator()的类对象都满足函数对象的特征,都可以作为函数对象来使用。 STL提供了标准的函数对象,包括算术,关系和逻辑函数对象。 算术:plus,minus,multiplies,negate 关系:equal_to,not_equal_to,greater,less,greater_equal,less_equal 逻辑:logical_and,logical_or,logical_not 函数对象 * 函数适配器 标准库提供了一组函数适配器,可以分为两类:一是绑定器(binder);二是取反器(negator)。 绑定器通过把二元函数对象的一个实参绑定到一个特殊的值上,将其转换成一元函数对象。 取反器是将一个函数的对象的值翻转的函数适配器。 函数对象 * 容器(Container) 容纳其它对象的对象 vector、deque、list、set、map、stack、queue 迭代器(Iterator) 访问容器的桥梁,类似C++指针 顺序容器和关联容器都有自己的iterator 算法(Algorithm) 访问、操作容器中数据元素的函数 STL库包含70多个通用算法 函数对象(Function object) 重载了operator()的对象 其使用方法类似函数调用,因此也叫仿函数 小结 * 小结 主要介绍了容器、迭代器、算法、函数对象和适配器的概念,并介绍了标准容器vector、list以及deque的详细用法,并且介绍了容器适配器stack和deque,除了顺序容器之外,还简单介绍了关联容器set和map的使用。迭代器做为泛型指针用于访问容器的桥梁,我们介绍了其分类以及在容器中的使用,并且介绍了迭代器辅助函数的应用。 STL学习资料 MSDN:/zh-cn/query/f1dtts6s * 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我

文档评论(0)

1亿VIP精品文档

相关文档