首页 / C++ / C++ multiset 学习笔记
C++ multiset 学习笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ multiset 学习笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2096字,纯文字阅读大概需要3分钟。
内容图文
![C++ multiset 学习笔记](/upload/InfoBanner/zyjiaocheng/672/56ebb78435804dfdbe36597c30fdf625.jpg)
https://www.luogu.org/blog/yu123123/Templet
set和multiset会根据特定的排序原则将元素排序。两者不同之处在于,multisets允许元素重复,而set不允许重复。
基本的操作函数:
1.Basics
创建一个set/multiset:
这里以multiset为例子:
multiset<int> s;
创建一个int类的multiset
s.max_size()返回最多容纳的元素个数
s.size()当前容器中的元素个数
s.empty()判断容器是否为空
2.特殊的搜索函数
multiset <int,greater<int> > s;创建一个从大到小排序的类型
multiset<int,less<int>> s;创建一个从小到大排序的类型(也就是默认)
s.begin(),s.end();
返回s的首/尾迭代器
s.count(x)查询容器中x元素的出现次数
s.find(x) 查询容器中x元素的第一次出现位置,如果没有返回s.end();
s.lower_bound(x) 返回一个迭代器,标记s中出现的第一个大于等于x的元素位置
s.upper_bound(x) 返回一个迭代器,标记s中出现的第一个大于x的元素位置
s.insert(x) 在s容器中插入x元素
for(multiset<int>::iterator it=s.begin();it!=s.end();it++)
printf("%d ",*it);如何遍历一个s容器
s.erase()当无参数的时候会将整个容器中的元素全部删掉!
s.erase(pos)只会删除迭代器pos所指向的元素
s.erase(l,r) 会删除区间[l,r)内的所有元素!
https://www.jianshu.com/p/ecd7f66e11d3
#include <set>
#include <iostream>
using namespace std;
int main()
{
///1. 初始化
multiset<int> num;
multiset<int>::iterator iter,beg,end;
cout << num.max_size() << endl;///multiset容纳上限
cout << endl;
///2. 添加元素
for (int i = 0; i < 10; i++)
num.insert(i);
cout << num.size() << endl;
cout << endl;
///3. 遍历
for (iter = num.begin(); iter != num.end(); iter++)
cout << *iter << " " ;
cout << endl;
cout << endl;
///4. 查询
iter = num.find(1);
if (iter != num.end())
cout << *iter << endl;
else
cout << -1 << endl;
iter = num.find(99);
if (iter != num.end())
cout << *iter << endl;
else
cout << -1 << endl;
cout << endl;
beg=num.lower_bound(2);
end=num.upper_bound(7);
for (; beg != end; beg++)
cout << *beg << " " ;
cout << endl;
///5. 删除
iter = num.find(1);
num.erase(iter);
cout << num.size() << endl;
for (iter = num.begin(); iter != num.end(); iter++)
cout << *iter << " " ;
cout << endl;
cout << endl;
///6. 判空与清空
if (!num.empty())
num.clear();
}
?
内容总结
以上是互联网集市为您收集整理的C++ multiset 学习笔记全部内容,希望文章能够帮你解决C++ multiset 学习笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。