本文用于总结STL常用API!!!本文代码已经上传到github中。
1. STL(标准模板库)
STL提供了一组表示容器、迭代器、函数对象和算法的组件。容器是用来存储若干个类型相同的值;迭代器用来遍历容器;函数对象是类似于函数的对象;算法是完成特定任务的方法。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。
2. 容器的种类?
(本文图片来源于博客:https://www.cnblogs.com/kuotian/p/5314763.html)
a. 序列(顺序)容器:各元素之间有顺序关系。元素的排列次序与元素值无关,而是与元素添加到容器里的次序有关。
常用容器:vector(向量)、list(双向链表)、deque(队列)
序列容器的共同方法:
不同容器特有的方法:
vector容器
#include <iostream>
#include <vector>
using namespace std;
//遍历vector
void print_vector(vector<int> vec)
{
//方法一
for (int i = 0; i < vec.size(); i++)
cout << vec[i] << " ";
cout << endl;
//方法二
vector<int>::iterator ite = vec.begin();
while (ite != vec.end())
{
cout << *ite << " ";
ite++;
}
cout << endl;
}
void main()
{
//对象初始化
vector<int> vec;
vector<int> vec_0(5);//定义长度,初识值为0
vector<int> vec_3(5, 3);//定义长度,初识值为3
//遍历vector容器
print_vector(vec_0);
//vector推入元素
vec.push_back(1);
//第一个元素之前插入5个值为3的元素
vec.insert(vec.begin(), 5, 3);
//最后一个元素之后插入5个值为3的元素
vec.insert(vec.end(), 5, 3);
print_vector(vec);
//删除最后一个元素
vec.pop_back();
//删除区间的元素
vec.erase(vec.begin() + 2, vec.end());
//清空vector
vec.clear();
//判断是否为空
bool empty_result = vec.empty();
cout << empt