当前位置: 首页 > news >正文

邢台网络公司网站建设免费的网站推广软件下载

邢台网络公司网站建设,免费的网站推广软件下载,做外贸找产品上哪个网站好,广东省工程建设注册中心网站set/multiset容器 Set基本概念set构造和赋值set的大小和交换set的插入和删除set查找和统计 set和multiset的区别pair对组两种创建方式 set容器排序 Set基本概念 所有元素都会在插入时自动被排序。 set/multist容器属于关联式容器,底层结构属于二叉树。 set不允许容…

set/multiset容器

  • Set基本概念
    • set构造和赋值
    • set的大小和交换
    • set的插入和删除
    • set查找和统计
  • set和multiset的区别
    • pair对组
      • 两种创建方式
  • set容器排序

Set基本概念

所有元素都会在插入时自动被排序。
set/multist容器属于关联式容器,底层结构属于二叉树。
set不允许容器中有重复的元素,multiset允许容器中有重复的元素。

set构造和赋值

1、set<T> st;默认构造函数
2、set(const set &st);拷贝构造函数
3、set& operator=(const set &st);赋值

void test1() {set<int> st;st.insert(10);st.insert(40);st.insert(30);st.insert(1);st.insert(30);p(st);set<int> s2(st);p(s2);set<int> s3;s3= s2;p(s3);
}

在这里插入图片描述

set的大小和交换

1、empty();判断容器是否为空
2、size();返回容器中元素的个数
3、swap(st);交换两个集合容器

void test1() {...if (!st.empty()) {cout << "大小" << st.size()<<endl;}set<int> s2;s2.insert(32);s2.insert(23);s2.insert(43);st.swap(s2);p(st);
}

set的插入和删除

1、insert(elem);插入,只有这一种方法
2、clear();清空所有元素
3、erase(pos);删除pos位置的元素,返回下一个数据的位置
4、erase(beg,end);删除迭代器从beg到end之间的元素,返回下一个数据的位置
5、erase(elem);删除容器中值为elem的元素

void test1() {
...st.erase(st.begin());st.erase(++st.begin(), --st.end());p(st);st.erase(10);p(st);st.clear();p(st);
}

在这里插入图片描述

set查找和统计

1、find(key);查找key是否存在,若存在,返回该键的元素的迭代器,若不存在,返回set.end()
2、count(key);统计key的元素个数

void test1() {...set<int>::iterator pos=st.find(40);if (pos != st.end()) {cout << "找到:" <<*pos<< endl;}else {cout << "没找到" << endl;}cout << st.count(30) << endl;//统计的结果式0或1
}

在这里插入图片描述

set和multiset的区别

1、set不可以插入重复数据,multiset可以
2、set插入数据的同时会返回插入结果,表示插入成功
3、multiset不会监测数据,因此可以插入重复数据

void test1() {set<int> st;pair<set<int>::iterator, bool> ret = st.insert(30);if (ret.second) {cout << "第一次插入成功" << endl;}else {cout << "第一次插入失败" << endl;}ret=st.insert(30);if (ret.second) {cout << "第二次插入成功" << endl;}else {cout << "第二次插入失败" << endl;}
}

在这里插入图片描述

	m.insert(10);//直接插入不会检测m.insert(10);for (multiset<int>::const_iterator it = m.begin();it != m.end();it++) {cout << (*it) << "   ";}cout << endl;

在这里插入图片描述
返回是一个对组
在这里插入图片描述
在这里插入图片描述

multiset插入返回的是一个迭代器
在这里插入图片描述

pair对组

两种创建方式

1、pair<type,type> p(value1,value2);
2、pair<type,type> p=make_pair(value1,value2);

void test() {pair<string, int>p("Tom", 20);cout << "姓名:" << p.first << "年龄:" << p.second << endl;pair<string, int>p1=make_pair("Ala", 23);cout << "姓名:" << p1.first << "年龄:" << p1.second << endl;
}

set容器排序

在使用仿函数排序时,需要加const不可修改,不然会报错,set的排序规则下定义是需要设置好,默认是升序。

class S {
public:int age;string name;int h;S(string _n, int _a,int _h) {name = _n;age = _a;h = _h;}
};
class compareS {
public:bool operator()(S v1, S v2) const{return v1.age > v2.age;}
};
class MyCompare {
public:bool operator()( int v1, int v2)const {return v1 > v2;}
};
//内置类型排序
void test1() {//指定排序规则为大到小set<int,MyCompare> s2;s2.insert(10);s2.insert(40);s2.insert(30);s2.insert(1);s2.insert(30);for (set<int,MyCompare>::iterator it = s2.begin();it != s2.end();it++) {cout << (*it) << "   ";}
}
//自定义类型排序
void test() {set<S, compareS> s;S s1("Tom", 18, 187);S s2("Lisa", 20, 165);S s3("LuJy", 34, 190);S s4("Tony", 21, 167);S s5("Ala", 20, 168);s.insert(s1);s.insert(s2);s.insert(s3);s.insert(s4);s.insert(s5);for (set<S, compareS>::iterator it = s.begin();it != s.end();it++) {cout << "姓名:" << (*it).name << "\t年龄:" << (*it).age << "\t身高:" << (*it).h << endl;}
}
http://www.hkea.cn/news/420543/

相关文章:

  • 可以做英文纵横字谜的网站搜狗网站收录入口
  • web前端开发是不是做网站百家号关键词排名优化
  • 夸克看网站要钱吗电商网站seo优化
  • 自己做网站排版138ip查询网域名解析
  • 东莞做网站 南城石佳2023网站推广入口
  • 广东省省建设厅网站郴州网站建设网络推广平台
  • 校园网站推广方案怎么做应用商店优化
  • 巩义网站建设网络营销公司是做什么的
  • 做网站基本教程一站式营销平台
  • 杭州模板网站建设电脑培训网上培训班
  • 大连做网站不错的公司怎样把广告放到百度
  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo
  • 如何制作私人网站福州专业的seo软件
  • 做网站主流技术南宁在哪里推广网站
  • 老板让我做网站负责人微博营销软件
  • 教我做网站百度打开
  • 网站开发时如何兼容电商运营是做什么的