C++STL库学习记录
基础概念
六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器
容器:各种数据结构
算法:各种常用的算法
迭代器:扮演了容器和算法之间的结合剂
仿函数:行为类似函数,可以作为算法的魔种策略
适配器:一种用来修饰容器或者仿函数或则迭代器接口的东西
空间配置器:负责空间的配置和管理
容器:
1,序列式容器,无序
2,关联式容器,有序
算法:
1, 质变算法
a) 运算过程中会改变区间内元素的内容 ,如,拷贝,替换,删除
2, 非质变算法
a) 运算过程中,不会更改区间内元素内容,如,查找,计数,遍历,寻找
迭代器:
每个容器都有自己的迭代器,类似指针,但不单是指针
vector容器
vector的基本操作:
判断vector中是否存在某个元素:
寻找元素在vector中的位置:
max_element(begin, end)返回列表中最大值的下标位置,前面加*为取值
min_element(begin, end)返回列表中最小值的下标位置,前面加*为取值
string容器
基本概念
构造函数
赋值操作
字符串拼接
string操作
栈操作stack
stack<数据类型>
push(): 向栈内压入一个成员;
emplace():与push功能一样:
两者区别:
对于int、double等内置数据类型而言,push()和emplace()是相同的
对于自定义数据类型而言,使用push()前必须先将要添加的对象构造出来(实例化),而使用emplace()既可以填入实例化的对象也可以填入对象的构造参数
pop(): 从栈顶弹出一个成员;
empty(): 如果栈为空返回true,否则返回false;
top(): 返回栈顶,但不删除成员;
size(): 返回栈内元素的大小;
unordered_set容器
基本概念
建立哈希集
插入操作
删除操作
核心功能:搜索
如果存在就返回1
哈希集的主要功能是:验证一个键是否已经在哈希集里注册过
find函数
遍历哈希集
unordered_map容器
基本概念
建立哈希集
插入键值对
hashmap.insert()一般和make_pair一起使用
删除
搜索键值对
遍历
emplace函数的使用
基本概念
用法
特性
代码演示
emplace函数的参数根据元素类型而变化,参数必须与元素类型的构造函数相匹配
总结
emplace函数在容器中直接构造元素,传递给emplace函数的参数必须与元素类型的构造函数相匹配