STL(标准模板库)
从逻辑层面来看,在STL中体现了泛型化程序设计思想
从实现层次来看,整个STL是以一种类型参数化的方式来实现的
STL六大组件
- 容器
- 迭代器
- 算法
- 适配器
- 函数对象
- 分配器
容器:
- vector(向量:连续存储元素)
- list(双向链表)
- deque(双队列)
- stack(栈,先进后出的值的排列)
- queue(队列,先进先出的值的排列)
string类的用法
- string s1="hello world”;
- string s2(“123456”);
- string s3=s2;
- string s4(10,‘a’)
- 遍历方法:
- for(string::iterator it =s1.begin;it!=s2.end();it++)
{
cout<<*it;
}
//
for(int i=0;i<(int) s1.length();i++)
{
cout <<s1[i];
}
string &operator=(const string &s) //把字符s赋值给了当前字符串
c.assign(n,e) //vector将元素e的n个字符拷贝赋值给c
string &assign(const char *s,int n) //用char类型字符串s开始的n个字符赋值
?string类的查找替换插入删除
设计模式
(相当于C语言的数据结构)
- 宗旨:使代码更加独立,更加安全,维护性更好
- 概述:面向对象系统的分析和设计实际上追求的就是高内聚低耦合
- 高内聚:相似的功能集中到一块,确定模块要完成的功能
- 低耦合:不能让程序之间有过多的联系,减少模块之间的联系与依赖
- 作用:让代码更容易被人理解,保证代码的可靠性
- 核心思想:隔离变化,封装变化
类的方法
- 构造
- 析构
- 运算符的重塑
- 普通成员函数
- set/get方法
- 静态成员函数(静态成员变量:不存在于对象空间中,但是被空间成员共享,)
静态成员变量:
- 优点:
- 可以避免对象名字冲突
- 可以实施封装,static成员可以是私有的,而全局对象不可以
- 可以清晰的反映程序员的意图
静态成员函数只能访问静态成员变量