C++标准模板库STL最强学习总结!

本文介绍了C++ STL中的vector、set、map容器的定义、用法、访问方法和常见操作,包括push_back, pop_back, size, clear等,并提到了它们在邻接表和数据结构中的应用。
摘要由CSDN通过智能技术生成

Vector

定义方式:
#include<vector>
vector<int> name;
vector<char> name;
vector<string> name;
vector<node> name;  node为结构体
vector<int > name[100];

用法类似数组,所以像vector<vector<int> > name,其中一维是一个数组的数组。

访问方法:

1.通过下标访问,name[index];
2.迭代器访问,

for(vector<int>::iterator it = vi.begin();it!=vi.end();it++)
{
    cout<<*it<<endl;
}
常用函数(不全):
push_back(x), 末尾添加元素x
pop_back(x), 删除vector末尾元素x
size(), 获取vector中元素个数
clear(), 清空vector所有元素
insert(), insert(it,x),在it处插入x
erase(), erase(it),删除迭代器it处的元素
erase(first,last), 删除[first,last)内所有元素

vector可以存储数据,还可以当作邻接表存储图。

set

定义方式:
#include<set>
set<typename> name;

还可以定义数组,与vector类似。
这个容器基于红黑树,会自动排序和去重。

访问方法:

与vector相同

常用函数(不全):
insert(x), 插入元素
find(value), 返回set对应值为value的迭代器。
size(), 获取set中元素个数
clear(), 清空set所有元素
erase(it), 删除迭代器it处的元素
erase(value), 删除值为value的元素
erase(first,last), 删除[first,last)内所有元素

使用unordered_set,只去重,不排序。

map

一种映射,可以将任何类型映射到任何类型。基于红黑树,按键值(索引)自动排序。

定义方式:
#include<map>
map<typename1,typename2> name;
ep: map<string,int> mp;
访问方式:

迭代器访问

for(map<char,int>::iterator it = mp.begin();it!=mp.end();it++)
{
	cout<<it->first<<"  "<<it->second<<endl;
}
常用函数(不全):
find(key), 返回键值为key的迭代器。
erase(it), 删除迭代器it处的元素
erase(key), 删除映射的键值为key的元素
erase(first,last), 删除[first,last)内所有元素
size(), 获取map中映射个数
clear(), 清空vector所有映射

建立字符与整数之间关系、字符串与字符串关系等待常常用map,unordered_map只映射而不按键值排序。
有时无法映射时会采用pair<name1,name2> name代替,绑定两个元素的关系。

queue stack string algorithm

可自行查找常用函数,不难。
上面这些是最近应对面试题所学的STL模板库,发现真的方便很多,总之,多学多见吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值