C++ STL常用容器用法

前言:近些天看题解总是看到一些容器的用法搞不明白,
比如优先队列为什么写成priority_queue<int,vector<int>,greater<int> > q;
自己对于某些容器还是很陌生,于是翻开了《算法笔记》学习一下。

一、set的使用方法

set(集合)是一个内部自动有序的不含重复元素的容器。
可以用来去掉重复元素。

1、set的定义

单独定义一个set:
set<int> name;
定义一个set数组:
set<int> a[100];

2、对set容器内元素的访问

set只能通过迭代器访问。
set<int>::iterator it;
除去vector和string的容器都不支持通过*(it + i)的方式访问。
set也不支持it < st.end()的写法。

3、set的常用函数

insert(); find(); erase(); size(); clear();

4、延伸

set中的元素是唯一的,如果要处理不唯一的情况,则需要使用multiset。
C++ 11中还添加了unordered_set,以散列表来代替set內部的红黑树实现,可以处理只去重但不排序的需求,速度比set快得多。

二、map的使用方法

map(映射)任意两种基本类型之间的映射。
map<typename1, typename2> mp;
第一个是键的类型,第二个是值的类型

posted @ 2022-07-03 22:59  bz-2021  阅读(45)  评论(0编辑  收藏  举报