#include
vector<int> name;
vector<char> name;
vector<string> name;
vector<node> name; node为结构体
vector<int > name[100];
用法类似数组,所以像vector
,其中一维是一个数组的数组。
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可以存储数据,还可以当作邻接表存储图。
#include
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,只去重,不排序。
一种映射,可以将任何类型映射到任何类型。基于红黑树,按键值(索引)自动排序。
#include
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
可自行查找常用函数,不难。
上面这些是最近应对面试题所学的STL模板库,发现真的方便很多,总之,多学多见吧。