C++ STL常用容器(二)

一、Map

  使用时需要包含头文件:

#include <map>;
1.初始化
map<int, string> m;
2.成员函数的用法
map<int, string> m;

/*插入元素*/
m.insert(pair<int, string>(1, "A"));
m[2]="B";

/*查找元素*/
auto iter = m.find(1);
if (iter != m.end())
    cout << "Find, the value is "<< iter->second << endl;
else
    cout << "Do not Find" << endl;

/*刪除元素*/
auto iter = m.find(2);
m.erase(iter);

int f = m.erase(1);//刪除成功返回1,否则返回0

m.erase(m.begin(), m.end());//全部删除
m.clear();//全部删除
3.特点
  • 提供一个键值对(key/value)容器
  • 对于迭代器来说,可以修改实值,而不能修改key。Map会根据key自动排序。
  • 如果该键不在 map 容器中,那么下标操作会插入一个具有该键的新元素。

二.set

  使用时需要包含头文件:

#include <set>;
1.初始化
set<int> s;
2.成员函数的用法
set<int> s;

s.begin();//返回指向第一个元素的迭代器
s.end();//返回指向最后一个元素的迭代器
s.insert(elem);//在集合中插入元素elem
s.empty();//判断是否为空
s.clear();//删除所有的元素
s.size();//返回当前中的元素个数
s.find(elem);//返回一个指向被查找到元素的迭代器
s.erase(s.begin(), s.end());//全部删除
3.特点
  • 根据元素的键值自动排序
  • set元素的键值就是实值,实值就是键值
  • 不允许两个元素有相同的键值

三.multimap

  使用时需要包含头文件:

#include <map>;
1.初始化
multimap<int, string> M;
2.成员函数的用法
multimap<int, string> M;

M.insert(pair<int, string>(2, "A"));//插入元素

/*查找元素*/
auto iter=M.find(1);
int a;
a = iter->first;
for (auto i = iter; a == iter->first;iter++)
    cout << iter->first << " " << iter->second << endl;

/*刪除元素*/
int f = M.erase(1);//刪除成功返回1,否则返回0

M.erase(M.begin(), M.end());//全部删除
M.clear();//全部删除
3.特点
  • 允许将具有重复键值的元素插入容器。
  • 元素的键值与元素的映照数据的映照关系,是多对多的。
  • 只能采用迭代器的方式,而不能用数组方式,遍历容器的元素。

四.multiset

  使用时需要包含头文件:

#include <set>;
1.初始化
multiset<int> S;
2.成员函数的用法
multiset<int> S;

S.begin();//返回指向第一个元素的迭代器
S.end();//返回指向最后一个元素的迭代器
S.insert(elem);//在集合中插入元素elem
S.empty();//判断是否为空
S.clear();//删除所有的元素
S.size();//返回当前中的元素个数
S.find(elem);//返回一个指向被查找到元素的迭代器
S.erase(S.begin(), S.end());//全部删除
S.count(elem);//计算容器中元素elem的个数
3.特点
  • 根据元素的键值自动排序
  • 元素的键值就是实值,实值就是键值
  • 允许两个元素有相同的键值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不放弃的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值