一、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. javascript第三课underfind和类型获取

    1.underfind一般发生于变量定义之后未赋值,因此变量的值就为underfind 2.var obj=new object(); 此时使用obj点,可以获取到obj对象的一些方法,使用alert ...

  2. iOS提交AppStore后申请加急审核(转)

    是的,由于最近知名的Xcode后门事件,我们的应用也被感染了.o(╯□╰)o 上周四从看到喵神的微博得知第三方Xcode可能被感染后马上查了下,自己用的却是被感染了,于是马上到MAS下载了最新的Xco ...

  3. visibleViewController和topViewController 获取当前显示的页面

    原文:http://blog.sina.com.cn/s/blog_881ed8500102vo38.html UINavigationController 中有visibleViewControll ...

  4. C-Free 您不能使用调试解决方案

    什么时候C-Free 当您调试 找不到gdb.exe解决方案 http://www.programarts.com/ C-Free 官方网站 下载Mingw或者其他编译器 版权声明:本文博主原创文章. ...

  5. UART串口协议基础1

    Louis kaly.liu@163.com 串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据. 发送器和接收器都利用了一个移位寄存 ...

  6. for应用

    应用:迭代法,穷举法.一.迭代法:有一定规律. 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备.例:1.100以内所有数的和.2.求阶乘3.求年龄.4.折纸.5.棋盘放粮食 ...

  7. JavaScript 继承方式的实现

    1.原型链继承 function superType(name){ this.name= 'milk'; } super.prototype.sayName=function(){ console.l ...

  8. android的Log日志打印管理工具类(一)

    android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...

  9. poj 3100

    题意:给你两个数B.N,求一个数的N次方最接近B. 先求出B的1/N次方:A,然后比较A和A+1的N次方那个更接近B #include<stdio.h> #include <math ...

  10. mysql 按日期查询

    在mysql中,比如你的表的时间字段是column2,并且column2的类型是timestamp 单日查询: select * from TableName where column1='xxxx' ...