1.STL(标准模板库)
1.1 STL的六大组件
1.1.1 容器、算法、迭代器、仿函数、适配器、空间配置器
1.2 容器 --Container
1.2.1 序列式容器
1.2.2 关联式容器----有key,起到索引作用
1.3 算法 --algorithm
1.3.1 质变算法
1.3.2 非质变算法
1.4 迭代器 --iterator
1.4.1 双向迭代器
1.4.2 随机访问迭代器(功能最强,可以支持跳跃式的访问)
1.5 优点
1.5.1 不需再次安装额外的东西,直接就可以使用
1.5.2 高复用性、高移植性、高性能
1.5.3 数据和算法分离,利用迭代器进行沟通的
1.5.4 程序员可以不用考虑STL具体的实现过程,仅仅熟悉STL的使用就行。因而就可以用多余的精力全放在程序开发的别的方面
2.容器算法迭代器初识
2.1 格式为: vector<类型> v 容器
2.2 采用尾插方式给容器v中装入数据,v.push_back()
2.3 起始迭代器 v.begin() --指向容器中第一个元素
2.4 结束迭代器 v.end() ---指向容器中最后一个元素的下一个位置
2.5 三种遍历方式,其中如果调用系统遍历for_each() 需要引用头文件 algorithm
2.5.1 第一种遍历--while方法
2.5.2 第二种遍历--for循环,例如for(vector<int>::iterator it = v.begin(); it!=v.end(); it++){cout << *it << endl;}
2.6.3 第三种遍历--for_each(),例如for_each(v.begin(), v.end(),myPrint);
2.6 内置数据类型、自定义数据类型、容器嵌套容器的练习
2.7 普通指针也是属于一种迭代器
3.string容器简述
3.1 string构造、赋值
3.2 字符存取:[]和at两者之间的区别
3.2.1 at方式存取时,访问越界会抛出out_of_range异常
3.2.2 []存取方式会出现程序中断、
3.3 拼接、查找、替换
3.3.1 +=运算符、append 用于拼接
3.3.2 查找find,如果查不到返回-1, rfind查找是由右往左查
3.3.3 替换字符串用replace
3.4 比较 compare
3.4.1 如果两字符串相等是=1,字符串1大 >0,字符串1 小<0
3.5 子串
3.5.1 string subtr(int pos =0, int n = npos) const;//返回由pos开始的n个字符组成
的字符串
3.5.2 截取网址的单词保存至容器中(练习)
3.6 插入 insert
3.7 删除 erase
3.8 char * 和string 转换
3.8.1 char*转string:调用string有参构造,string str(“char *”)
3.8.2 string转 char*:调用.c_str();const char *
3.8.3 编译器可以将char* 隐式类型转换为string,反之不可以
3.9 小写转大写 和 大写转小写
3.9.1 转大写 toupper
3.9.2 转小写 tolower
4.Vector 容器
4.1 与数组类型相似,但是是动态数组
4.2 动态分配内存,并不是原有空间下再次分配,而是重新找一个新的空间将原有数据拷贝到新空间下,然后释放掉原有空间
4.3 构造、赋值行为
4.4 交换swap
4.5 size:用于计算容器的大小
4.6 capacity:用于计算容器的容量
4.7 empty:用于判断容器是否为空
4.8 resize:用于重新指定容器长度
4.8.1 如果比原来的长,默认用0填充,但是用户也可以根据自己需求用第二个参数代替默认值
4.8.2 如果比原来的短,超出的部分元素会直接被删除
4.9 reserve:用于预留空间,但是不进行初始化
4.10 at、[]:用于对元素存取,at越界会抛出异常out_of_range;[]越界会直接挂掉程序
4.11 front:用于标识容器第一个元素
4.12 back:用于标识容器最后一个元素
4.13 insert(迭代器):用于向容器中插入元素
4.14 erase(迭代器):用于删除容器中元素
4.15 clear:用于清空容器中所以元素
4.16 push_back:用于向容器中尾插元素
4.17 pop_back: 用于容器中尾删元素
4.18 通过练习认识swap和reserve
4.18.1 用swap来收缩内存
4.18.2 用reserve预留空间
4.19 逆序遍历需要迭代器 reverse_iterator
4.20 可以通过给迭代器加个数字来判断迭代器是否支持随机访问
5.deque 容器
5.1 双端数组---没有容量--内部用中控器控制连续分段空间
5.2 可以对头部进行插入删除
5.3 和vector的测试接口相似
5.4 不同点是:头部插入 push_front ;头部删除 pop_front
C++每日学习笔记DAY10
最新推荐文章于 2024-07-13 19:27:27 发布