一、模板与继承
1.从模板类派生模板子类
2.为模板子类提供基类

二、容器和迭代器
以链表为例。

三、STL概览
1.十大容器
1)向量(vector):连续内存,后端压弹,插删低效
2)列表(list):链式存储,前后压弹,插删高效
3)双端队列(deque):连续内存,前后压弹,插删折中
以上三种合称线性容器。
4)堆栈(stack):后进先出
5)队列(queue):先进先出
6)优先队列(priority_queue):优者先出
以上三种合称适配器容器。
7)映射(map):以二叉树的形式存放key-value对,key升序且唯一。
8)集合(set):没有value的映射。
9)多重映射(multimap):key可不唯一的映射。
10)多重集合(multiset):没有value的多重映射。
以上四种合称关联容器。
2.泛型算法
3.实用工具
typedef basic_string<char> string;
swap
for_each
...

四、向量(vector)
1.基本特点
1)连续内存、下标访问和随机迭代。
2)动态内存管理。
3)通过预分配内存避免动态内存管理的开销。
4)也支持在任意位置的插入和删除,虽然效率不高。
5)元素都是副本,需要支持深拷贝。
2.定义变量
#include <vector>
using namespace std;
vector<int> vi;
3.迭代器
vector<int>::iterator it = vi.begin ();
vector<int>::const_iterator it = vi.begin ();
4.push_back/pop_back/front/back
5.下标运算符[]
vi[0] = 1;
cout << vi[10] << endl;
6.size - 获取元素个数
7.通过单参构造预分配元素空间
vector<int> vn (10);
预分配的元素如果是简单类型,用0初始化,如果是类类型的,用无参构造初始化。
8.通过双参构造在预分配元素空间的同时,根据第二个构造实参做初始化
vector<int> vn (10, 5);
9.通过另一个容器的起止迭代器初始化。
10.size/resize/clear/capacity/reserve
size     - 获取元素数
resize   - 改变元素数,可增可减
clear    - 清空
capacity - 获取容量(最大元素数)
reserve  - 内存保留,增大容量

最新文章

  1. ASP.NET Core 中文文档 第三章 原理(11)在多个环境中工作
  2. gulp入门教程
  3. JAVA 判断Socket 远程端是否断开连接
  4. CSS 超出隐藏问题
  5. MIME类型大全
  6. Java基础知识强化之网络编程笔记20:Android网络通信之 Android常用OAuth登录和分享
  7. setTimeout的妙用2——防止循环超时
  8. Educational Codeforces Round 27 补题
  9. Phoenix与Hive学习资料
  10. 逻辑运算符、三元运算符、for循环、stack(栈),heap(堆),方法区,静态域
  11. ARM的编程模式
  12. EF CodeFirst系列(2)---CodeFirst的数据库初始化
  13. 移动HTML5前端性能优化指南
  14. pycharm 中 import requests 报错
  15. apache模块 合并多个js/css 提高网页加载速度
  16. 第38次Scrum会议(12/4)【欢迎来怼】
  17. C++中的字节对齐分析
  18. vue 解决跨域问题
  19. jQuery 操作cookie保存用户浏览信息
  20. ELK6.7.0 Windows 环境本地安装

热门文章

  1. bzoj1149
  2. Delphi流的操作 转
  3. window.open和window.close的使用详解
  4. 使用Python,字标注及最大熵法进行中文分词
  5. 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler
  6. 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service &#39;tomcat7&#39;
  7. web.xml配置DispatcherServlet
  8. 什么是 gnuplot
  9. mysql 5.6 设置慢查询
  10. &lt;经验杂谈&gt;C#/.Net字符串操作方法小结