STL模板_容器概念
一、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模板_容器概念的更多相关文章
- STL模板_十大容器概念
一.向量(续)1.大小和容量大小:容器中元素的个数.容量:容器中可容纳元素的个数.size_type size (void) const; // 获取大小void resize (size_type ...
- STL模板_概念
模板和STL一.模板的背景知识1.针对不同的类型定义不同函数版本.2.借助参数宏摆脱类型的限制,同时也因为失去的类型检查而引 入风险.3.借助于编译预处理器根据函数宏框架,扩展为针对不同类型的 具体函 ...
- STL模板_智能指针概念
一.智能指针1.类类型对象,在其内部封装了一个普通指针.当智能指针对象因离开作用域而被析构时,其析构函数被执行,通过其内部封装的普通指针,销毁该指针的目标对象,避免内存泄露.2.为了表现出和普通指针一 ...
- C++面试笔记--STL模板与容器
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vec ...
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...
- STL(标准模板库)基本概念
一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...
- C++标准模板库(STL)和容器
1.什么是标准模板库(STL)? (1)C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板 ...
- C++STL模板库序列容器之List容器
目录 一丶List容器的存储结构 二丶丶STL中list容器的使用. 一丶List容器的存储结构 list容器底层是链表结构来维护的.跟vector不一样. vector是数组维护的.拥有连续内存.所 ...
- C++模板--实现容器适配器
STL源码初接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称.从根本上说,STL是一些"容器"的集合 ...
随机推荐
- OC中ARC forbids explicit message send of release错误(转)
ARC forbids explicit message send of'release' 很显然,是ARC的问题. 错误原因:在创建工程的时候点选了“Use Automatic Reference ...
- java中文乱码解决之道(一)—–认识字符集
原文出处:http://cmsblogs.com/?p=1395 沉寂了许久(大概有三个多月了吧),LZ“按捺不住”开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要 ...
- php上传图片到server
php文件上传中会用到$_FILES系统函数 一.$_FILES系统函数 PHP编程语言中的常见的$_FILES系统函数使用方法有: $_FILES['myFile']['name'] 显示clien ...
- sql权限报表小知识
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIG ...
- 第三章SignalR在线聊天例子
第三章SignalR在线聊天例子 本教程展示了如何使用SignalR2.0构建一个基于浏览器的聊天室程序.你将把SignalR库添加到一个空的Asp.Net Web应用程序中,创建用于发送消息到客户端 ...
- Linux解决xhost: unable to open display
实用技巧:在Linux下设置xhost方法步骤 第一步:用root登陆linux,启动vnc服务: 第二步:根据vnc起来的端口,设置export DISPLAY=localhost:1(1表示vnc ...
- FPGA开发(3)
转载 榨干FPGA片上存储资源 记得Long long time ago,特权同学写过一篇简短的博文<M4K使用率>,文章中提到了Cyclone器件的内嵌存储块M4K的配置问题.文中提到了 ...
- 如何用SQL操作数据------告别标题党
额,首先跟大家道一个歉,由于本人上次利用标题来骗访问,对各位大哥大姐,叔叔阿姨,弟弟妹妹,and舅子老表的时间及流量造成了严重的浪费,本人深表歉意(好吧,其实本人内心还是有那么一丢丢的自豪的,毕竟是一 ...
- Spring事务异常回滚,捕获异常不抛出就不会回滚(转载) 解决了我一年前的问题
最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了....... 为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常 ...
- 在VS工程中,添加c/c++工程中外部头文件及库
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. 2.添加文件引用 ...