一、STL(Standard Template Library,标准模板库)概述
1.容器:基于泛型的数据结构。
2.算法:基于泛型的常用算法。
3.迭代器:以泛型的方式访问容器中的元素,是泛型的算法可以
应用在泛型的容器中。
4.实用工具:string、auto_ptr等等。
二、容器、迭代器和算法
1.双向线性链表
2.迭代器
3.算法
三、十大容器
线性 向量(vector)
容器 双端队列(deque)
列表(list)
----------------------------------
适配 堆栈(stack)
器 队列(queue)
容器 优先队列(priority_queue)
----------------------------------
关联 映射(map)
容器 多重映射(multimap)
集合(set)
多重集合(multiset)
四、向量
模板类:vector<元素类型>
头文件:#include <vector>
名字空间:std
1.基本特性
1)连续内存、下标访问
2)自动化的动态内存管理
3)预分配资源
4)随机访问
5)插入和删除,效率并不高
2.实例化方法
1)vector<元素类型> 向量对象; // 空向量
vector<int> vi;
2)vector<元素类型> 向量对象 (初始大小);
vector<int> vi (3);
基本类型元素,用0初始化。
vector<Student> vs (3);
类类型元素,用缺省构造函数初始化。
3)vector<元素类型> 向量对象 (初始大小, 初始值);
vector<int> vi (3, 17); // 17 17 17
vector<Student> vs (3, Student ("张飞", 25));
4)vector<元素类型> 向量对象 (起始迭代器, 终止迭代器);
int a[10] = {1,2,3,4,5,6,7,8,9,10};
^ ^
a+5 a+8
vector<int> vi (a+5, a+8); // 6 7 8
size_type vector<value_type>::size (void); // 大小
3.关系比较:只有相同类型的向量才可以比较
(==/!=/>/>=/</<=),其比较规则与字符串类似。
4.迭代器
iterator - 正向迭代器 \
const_iterator - 常正向迭代器 \ 随机迭代器
reverse_iterator - 反向迭代器 / +/-整数
const_reverse_iterator - 常反向迭代器 / >/</-迭代器
5.常用成员函数
value_type& front (void);
value_type const& front (void) const;
value_type& back (void);
value_type const& back (void) const;
void push_back (value_type const& val);
void pop_back (void);
iterator insert (iterator loc, value_type const& val);
iterator erase (iterator loc);
#typedef basic_string<char> string;
#typedef basic_string<wchar_t> wstring;

STL模板_容器概念的更多相关文章

  1. STL模板_十大容器概念

    一.向量(续)1.大小和容量大小:容器中元素的个数.容量:容器中可容纳元素的个数.size_type size (void) const; // 获取大小void resize (size_type ...

  2. STL模板_概念

    模板和STL一.模板的背景知识1.针对不同的类型定义不同函数版本.2.借助参数宏摆脱类型的限制,同时也因为失去的类型检查而引 入风险.3.借助于编译预处理器根据函数宏框架,扩展为针对不同类型的 具体函 ...

  3. STL模板_智能指针概念

    一.智能指针1.类类型对象,在其内部封装了一个普通指针.当智能指针对象因离开作用域而被析构时,其析构函数被执行,通过其内部封装的普通指针,销毁该指针的目标对象,避免内存泄露.2.为了表现出和普通指针一 ...

  4. C++面试笔记--STL模板与容器

    1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vec ...

  5. 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系

    2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...

  6. STL(标准模板库)基本概念

    一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...

  7. C++标准模板库(STL)和容器

    1.什么是标准模板库(STL)? (1)C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板 ...

  8. C++STL模板库序列容器之List容器

    目录 一丶List容器的存储结构 二丶丶STL中list容器的使用. 一丶List容器的存储结构 list容器底层是链表结构来维护的.跟vector不一样. vector是数组维护的.拥有连续内存.所 ...

  9. C++模板--实现容器适配器

    STL源码初接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称.从根本上说,STL是一些"容器"的集合 ...

随机推荐

  1. Yii中的CCheckBoxColumn在widget中的用法

    'columns'=>array(        array(            'class'=>'CCheckBoxColumn',            'id'=>'us ...

  2. 关于new 和delete

    这是百度知道上的答案,感觉讲的很生动形象,接下来要搞清楚的是new是关键字还是函数,new可以重载吗? 你想弄懂这个问题,首先你要弄清楚数据的3种存储方式. 1.静态区: 全局变量. 2.堆: 程序执 ...

  3. Mysql中时间的操作笔记

    1.创建修改表时,为datetime字段设置当前时间为默认值 CREATE TABLE `NewTable` ( `id` int(11) NOT NULL AUTO_INCREMENT , `des ...

  4. php的cURL库介绍

    cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.很多小偷程序都是使用这个函数.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的 ...

  5. Android API在不同版本系统上的兼容性

    随着安卓版本的不断更新,新的API不断涌出,有时候高版本的API会在低版本crash的. 如果minSdkVersion设置过低,在build的时候,就会报错(Call requires API le ...

  6. js 中 setTimeout()的用法

    setTimeout()在js类中的使用方法   setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  7. 50行实现简易HTTP服务器

    话说由于一直很懒,所以博客好像也没怎么更新...今天有空就写一下吧. 最近在看node.js的时候开始对http协议感兴趣了,毕竟node一开始就是为了做web服务器而产生的.于是试着想了一下大概的思 ...

  8. zookeeper参考

        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.     我需要运行几个 ...

  9. 走进C标准库(8)——"string.h"中函数的实现相关字符串操作函数

    我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) ...

  10. English interview!

    Q1:Why are you interested in working for our company?为什么有兴趣在我们公司工作?A1:Because your company has a goo ...