软件设计课件:Lecture 14 CPP Standard Template Library (1).pptxVIP

  • 2
  • 0
  • 约3.3千字
  • 约 57页
  • 2021-11-30 发布于安徽
  • 举报

软件设计课件:Lecture 14 CPP Standard Template Library (1).pptx

Lecture 13. C++ Standard Template Library;Outline;你有过这种经历吗? 在完成作业时,总要用到数组(Array)或链表(List), 总要写代码对其维护(增、删、查、改)! “每次都重新发明一个轮子” 在整个软件领域,数十年确实都在为了一个目标而奋斗——可复用性(Reusability) ;Introduction;泛型程序设计: 将算法从特定的数据结构中抽象出来,变得更为通用 C++的模板为泛型程序设计奠定了关键的基础 STL是泛型程序设计的一个范例 容器(container) 迭代器(iterator) 算法(algorithms) 函数对象(function object);Outline;Containers;Containers ; ; ;关联容器类型 ;Sequential Containers;Vector Container;Vector;Slide 13- 15;Operation Support;Vector Container;Vector Container;Constructors for Vector;Outline;STL has containers, algorithms and Iterators Containers hold objects, all of a specified type Generic algorithms act on objects in containers Iterators provide access to objects in the containers yet hide the internal structure of the container ;Using Declarations;Iterator Basics;vectorint ;Iterators;Iterators;Basic Iterator Operations;More Iterator Operations;Iterator Categories;Iterator Types Supported by Containers;Slide 13- 31;Bidirectional iterators provide the basic operations and the -- operators (pre- and postfix) to move to the previous data item. 双向迭代器可以自增和自减,无法使用某些容器(如单向链表)。 Example: //从尾到头遍历容器vector中的所有元素 for ( vectorint::iterator it = c.end()-1; it != c.begin()-1; it-- ) cout *it “ ” ; ;Random access iterators 像访问数组一样来访问容器 Provide the basic operations and –– Indexing p[2] returns the third element in the container //遍历容器vector的对象 c 中的所有元素 for (int i = 0; i c.size(); i++) cout c[i] ; Iterator arithmetic p + 2 returns an iterator to the third element in the container ;Constant and Mutable Iterators;Constant and Mutable Iterators;Reverse Iterators;Example : 正向和逆向遍历vector中的所有元素 cout using iterator: ; for ( vectorint::iterator it = c.begin(); it != c.end(); it++ ) cout *it ; cout endl ; cout using reverse_iterator: ; for ( vectorint::reverse_iterator it = c.rbegin(); it != c.rend(); it-- ) cout *it ; cout endl ;;Iterators;Iterators;Iterators;For_Each() Algorithm;Find() Algor

文档评论(0)

1亿VIP精品文档

相关文档