一、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. auto_ptr 要点解析

    今天看了auto_ptr类的用法,又仔细看了看C++标准库中的符合标准的auto_ptr类别的实作,觉得自己基本上理解了auto_ptr的原理,下面就我的心得写几句,有不正确的地方,希望多多指教. 1 ...

  2. UIImage 图片处理:截图,缩放,设定大小,存储

    图片的处理大概就分 截图(capture), 缩放(scale),设定大小(resize), 存储(save)这几样比较好处理, 另外还有滤镜,擦试等, 以后再说在这个Demo code裡, 我写了几 ...

  3. div footer标签css实现位于页面底部固定

    Web页面的“footer”部分随着飘上来,处在页面的半腰中间,给视觉效果带来极大的影响,让你的页面看上去很不好看,特别是现在宽屏越来越多,这种现象更是常见,本文将介绍两种解决方案,需要了解的朋友可以 ...

  4. 不能以方法的方式使用不可调用的“system.web.httprequest.querystring”

    问题描述:不能以方法的方式使用不可调用的“system.web.httprequest.querystring”解决办法:Request.QueryString["GoodsID" ...

  5. 文件和文件夹权限-Win7公共盘中出现大量临时文件

    公司中有一个文件服务器,给不同部门和员工设置了不同的权限,最近有员工(没有修改权限,有读取及执行,读取,写入)反映在公共盘上修改文件的时候会产生大量的临时文件,添加上修改权限之后就可以了,然后被同事问 ...

  6. Oracle EBS 如何月结[Z]

    概述应付模块的多数业务基于采购和库存的操作,因此应付模块的月结应该在采购模块和库存模块月结后才能关闭会计期.月结步骤在每个会计期末,应付模块的月结应遵循以下流程:1.检查业务是否全部录入;2.检查是否 ...

  7. ?super T 和? extends T区别

    Java 泛型 关键字说明 ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 <? super T> 表示类型下界(Java ...

  8. sql按in中集合排序

    1.SELECT * from tbLabelResRelation WHERE lId in(32,18,27,19) order by FIND_IN_SET(lId ,'32,18,27,19' ...

  9. (转载) css实现小三角(尖角)

    在各种网站里面,我们会经常看到类似于这样的尖角:(示例:新浪微博) 它实现的方式有多种,哪种才是最简单的?哪种才是最优秀的?首先我声明一下,我还不清楚这个东西具体叫什么名字(哪位知道还望告知),暂且叫 ...

  10. nodeJs入门笔记(一)

    node将"HTTP服务器"这一层抽离,直接面向浏览器用户 如PHP运行之前先要配置一个功能强大而复杂的HTTP 服务器,譬如Apache.IIS 或Nginx,还需要将PHP 配 ...