1.multimap(可存储相同值的map)
map<int> mp;
mp.erase(3);//删除键值为3的元素
map<int>::iterator it;
it = mp.find(2);//查找键值
struct Info
{
string name;
float score;
bool operator < (const Info& a) const//运算符重载,按score从小到大排序
{
return a.score < score;
}
};
map<Info, int> mmp;
//multimap------------允许键值相同的存在
multimap<string, double>m;
m.insert(pair<string, double>("a", 20));
m.insert(pair<string, double>("a", 30));
m.erase("a");//删除键值等于"a"的元素
//运用迭代器进行输出
#include <iostream>
#include <map>
using namespace std;
//multimap由于允许有重复的元素
//插入insert(pair<a,b>(v1,v2))插入两个数据关键值与映射
//删除和查找,erase(k)会删除掉所有k的map
//查找find(k)返回第一个k的迭代器
//multiset,与set不同之处就是它允许有重复的键值
//迭代器iterator、reverse_iterator
int main()
{
multimap<string, double>mp;
mp.insert(pair<string, double>("A", 100.2));
mp.insert(pair<string, double>("B", 10.2));
mp.insert(pair<string, double>("C", -40.2));
mp.insert(pair<string, double>("D", 40.2));
multimap<string, double>::iterator it;
for (it = mp.begin(); it != mp.end(); it++) {
cout << (*it).first << ": " << (*it).second << endl;
}
cout << endl;
return 0;
}
2.multiset
(也是可以允许有相同的键值)
3.dueue(双端队列)
可以取队尾的值/可以删除队尾的值
push_back()从队尾插入
push_front()和insert()在首部和中间位置插入元素
deque<int> d;
d.push_back(1);
d.push_back(2);
d.push_back(3);
d.insert(d.begin() + 1, 40); //找到插入数的地址,只能覆盖原有的数,不能增加新的数
cout << d[0] << d[1] << d[2] <<endl; //输出 1 40 3
d.erase(d.begin() + 1);//删除40
d.pop_front();//头部删除元素
d.pop_back();//尾部删除元素
4.priority_queue(最大元素先出)
今天是在是太累了,真的是写不下去了,如有补充和总结看接下来的博客吧,还是要坚持的,开学第一篇博客,记得运算符重载一定要看,还有一些基本的函数应用场景,加油吧,纪念第一篇开学博客!!!新的学期,加油!