STL笔记导航:
c++:c+类+模板
(类:面向对象编程思想 模板:思想基础)
STL简介
1.要求:函数的使用
2.内容
-
2.1容器
-
可是随意使用的数据结构,已封装好
每种结构可以定义任意类型
2.2 算法
-
已经写好的算法(eg:排序,交换…)
适用于不同的容器
2.3 迭代器
- 中间件:识别容器类型
容器
本身是类,创建对象然后调用成员函数
学习方法
- 会使用类内的函数
- 学完STL并有整体认识,可以很好使用后:可研究 “STL源码”
提高个人编码能力、编码规范
推荐:侯捷《STL源码剖析》 - 求质不求速,要学习过程中延伸的东西 eg:英语
查找
- MSDN(全):容器名全部是小写
- 工具书(常用的函数)
- 百度
转定义 -->MSDN
顺序容器
string容器 (动态数组)
c++:Cstring,Qstring
string:类 ,string只针对字符串
- char*(对象) + 功能(函数)
大小:new 动态分配空间(new=实际+1 多一位存放‘/0’)
头文件:string
- 区分string和string.h
-string:类的头文件
-string.h:c语言中字符串操作头文件
数组
1.vector: 向量(动态数组)
分配原理和string一样
会申请一个连续空间,空间不够时申请另一个更大的空间,同时迭代器失效
头文件:vector
2.array:固定数组
vs2012、2013、2015 支持
vs2005 暂不支持
3.valarry
用于数学计算,封装了cmath.h(数学的计算公式)
链表
1. list
双向链表
2. forward_lis(更快)
向前链表–单链表(只提供‘前’的操作:头添加,头删除)
操作都在链表头
Visual Studio2005没有这个,2012就有了,C++11标准
函数
size():string字符个数,vector元素个数,list节点个数
vc6.0 创建工程:
win32 console Application
添加 c++ source file
先编译,再调试