C++语言程序设计:C++ STL.pptxVIP

  • 1
  • 0
  • 约1.08万字
  • 约 134页
  • 2020-12-21 发布于安徽
  • 举报
C++ 标准模板库 C++ Standard Template Libarary;STL主要内容;泛型程序设计 – 模版;概论;泛型程序设计;模板引子;模板;模板分类;模版分类;求最大值模板函数实现;模板工作方式;#include iostream template class T T min(T a[],int n) { int i; T minv=a[0]; for( i = 1;i n ; i++){ if(minva[i]) minv=a[i]; } return minv; };模板优缺点;STL概述;C++标准程序库的核心,深刻影响了标准程序库的整体结构 泛型(generic)程序库,利用先进、高效的算法来管理数据 由一些可适应不同需求的集合类??collection class),以及在这些数据集合上操作的算法(algorithm)构成 所有组件都由模板(template)构成,其元素可以是任意类型 所有C++编译器和所有操作系统平台都支持的一种库;//普通C++代码 #include iostream int main(void){ double a[] = {1, 2, 3, 4, 5}; std::coutmean(a, 5); std::coutstd::endl; return 0; };//使用了STL的代码 #include vector #include iostream int main() { std::vector int q; q.push_back(10); q.push_back(11); q.push_back(12); std::vector int v; for(int i=0; i5; ++i){ v.push_back(i); } … };STL中的几个基本概念;容器(Container) - 管理某类对象的集合 迭代器(Iterator) - 在对象集合上进行遍历 算法(Algorithm) - 处理集合内的元素 容器适配器(container adaptor) 函数对象(functor) ;容器;STL容器分类;顺序容器;关联容器;容器适配器;STL容器类;STL容器的共通能力;STL容器元素的条件;容器的共有成员函数;比较两个容器的例子;容器的成员函数;STL容器的共通操作;STL容器的共通操作;STL容器的共通操作;STL容器的共通操作;迭代器(iterator);例如: #include vector #include iostream using namespace std; int main() { vectorint v; //一个存放int元素的向量,一开始里面没有元素 v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); vectorint::const_iterator i; //常量迭代器 for( i = v.begin();i != v.end();i ++ ) cout * i ,; cout endl; vectorint::reverse_iterator r; //反向迭代器 for( r = v.rbegin();r != v.rend();r++ ) cout * r ,; cout endl; vectorint::iterator j; //非常量迭代器 for( j = v.begin();j != v.end();j ++ ) * j = 100; for( i = v.begin();i != v.end();i++ ) cout * i ,; };迭代器的基本操作;所有容器都提供获得迭代器的函数 ;所有容器都提供两种迭代器 container::iterator以“读/写”模式遍历元素 container::const_iterator以“只读”模式遍历元素;迭代器分类;双向迭代器 可以双向行进,以递增运算前进或以递减运算后退、可以用==和!=比较。 list、set和map提供双向迭代器 随机存取迭代器 除了具备双向迭代器的所有属性,还具备随机访问能力。 可以对迭代器增加或减少一个偏移量、处理迭代器之间的距离或者使用和之类的关系运算符比较两个迭代器。 vector、deque和string提供随机存取迭代器 ;不同迭代器所能进行的操作(功能);容器 ;例如,vector的迭代器是随机迭代

文档评论(0)

1亿VIP精品文档

相关文档