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

国家级建设网站成都公司的网站制作

国家级建设网站,成都公司的网站制作,百度seo软件,南宁市建设厅官方网站set与map 一、序列式容器与关联式容器二、pair1、键值对2、作用3、构造函数4、make_pair(1)构造函数(2)作用 5、代码6、运行结果 三、set1、概念2、代码3、运行结果4、说明 四、multiset1、与set的关系2、代码3、运行结果 五、map…

set与map

  • 一、序列式容器与关联式容器
  • 二、pair
    • 1、键值对
    • 2、作用
    • 3、构造函数
    • 4、make_pair
      • (1)构造函数
      • (2)作用
    • 5、代码
    • 6、运行结果
  • 三、set
    • 1、概念
    • 2、代码
    • 3、运行结果
    • 4、说明
  • 四、multiset
    • 1、与set的关系
    • 2、代码
    • 3、运行结果
  • 五、map
    • 1、概念
    • 2、代码
    • 3、运行结果
  • 六、multimap
    • 1、与map的关系
    • 2、代码
    • 3、运行结果

一、序列式容器与关联式容器

  • 序列式容器和关联式容器都是STL中的容器,它们之间主要的区别在于存储内部元素的方式不同。
  • 序列式容器按照元素插入的顺序进行存储元素的操作,即元素在容器中的位置与其被插入的先后顺序是一致的,底层为线性序列的数据结构。例如vector、list和deque等等容器。
  • 关联式容器通过比较关键字来对元素进行有序存储,而关键字可以是内置类型,也可以是自定义类型,只要关键字能够进行比较即可。例如set、map、multiset和multimap容器就是树型结构的关联式容器,它们使用平衡搜索树(红黑树)作为其底层结构,容器中的元素是一个有序的序列。
  • 关联式容器在进行数据检索时,它的效率比序列式容器高。

二、pair

1、键值对

用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value代表与key对应的信息。

2、作用

  • 此类将一对值耦合在一起,这些值可能属于不同的类型(T1 和 T2)。
  • 可以通过此类的公共成员first 和second 访问它们(耦合在一起的T1和T2类型的两个变量)。

3、构造函数

在这里插入图片描述

4、make_pair

(1)构造函数

在这里插入图片描述

(2)作用

  • 构造一个pair 对象,其第一个元素设置为x,第二个元素设置为y。
  • 一般创建pair对象时,会比较喜欢使用make_pair去创建。因为用pair创建对象时,需要显式传递参数的类型,而make_pair可以自己推导参数的类型。

5、代码

void test_pair()
{pair<int, int> p1;pair<int, int> p2(10, 20);pair<int, int> p3(p2);cout << p1.first << ":" << p1.second << endl;cout << p2.first << ":" << p2.second << endl;cout << p3.first << ":" << p3.second << endl;p1 = make_pair(30, 40);cout << p1.first << ":" << p1.second << endl;
}

6、运行结果

在这里插入图片描述

三、set

1、概念

  • set中只存放元素值(key),但在底层实际存放的是由<key, key>构成的键值对。
  • set按照一定次序存储元素,即按照其内部比较对象所指示的特定严格弱排序准则进行排序,默认按照小于来比较。
  • 元素的值(key)也标识它,即该值就是它本身的键值,每个元素的值都必须是唯一的,即插入元素时不需要构造键值对。
  • set中的元素不能在容器中修改,但是可以在容器中插入或者删除它们。

2、代码

void test_set()
{set<int> se;se.insert(5);se.insert(15);se.insert(8);se.insert(3);se.insert(10);se.insert(7);set<int>::iterator it = se.begin();while (it != se.end()){//(*it)++;cout << *it << " ";++it;}cout << endl;cout << se.erase(3) << endl;cout << se.erase(70) << endl;for (auto e : se){cout << e << " ";}cout << endl;int x;while (cin >> x){/*auto ret = se.find(x);if (ret != se.end())cout << x << "存在" << endl;elsecout << x << "不存在" << endl;*///cout << se.count(x) << endl;if(se.count(x))cout << x << "存在" << endl;elsecout << x << "不存在" << endl;}
}

3、运行结果

在这里插入图片描述

4、说明

  • set的使用和其他STL容器的使用类似。
  • 代码中count函数为统计x元素在set中出现的次数,但因为set中元素唯一,所以x存在则返回1,否则返回0。代码中注释部分代码的作用和它一样。

四、multiset

1、与set的关系

  • multiset与set基本一致,只是multiset存储的元素是可以重复的。

2、代码

void test_multiset()
{multiset<int> mse;mse.insert(5);mse.insert(5);mse.insert(15);mse.insert(8);mse.insert(8);mse.insert(3);mse.insert(10);mse.insert(8);mse.insert(7);set<int>::iterator it = mse.begin();while (it != mse.end()){//(*it)++;cout << *it << " ";++it;}cout << endl;cout << mse.count(5) << endl;cout << mse.count(8) << endl;cout << mse.count(7) << endl;
}

3、运行结果

在这里插入图片描述

五、map

1、概念

  • map按照特定的次序(使用key来比较,默认是小于)存储由键值key和值value组合而成的元素(即键值对)。
  • 键值key通常用于排序和作为唯一的标识元素,值value存储的是与此键值key关联的内容。键值key和值value的类型可以是不相同的。
  • map支持下标访问,即在[]中输入key值,就可以找到key和value组成的键值对。如果查找的key值的键值对不存在,则会构造一个键值对并插入容器中,其中value用匿名对象初始化。[]返回的是键值对中value的引用。
  • map中的key是唯一的,并且不能对其进行修改。

2、代码

void test_map1()
{map<string, string> mp;mp.insert(make_pair("hello", "你好"));mp.insert(make_pair("snow", "雪"));mp.insert(make_pair("dragon", "龙"));mp["left"];mp["right"] = "右";for (auto& kv : mp){cout << kv.first << ":" << kv.second << endl;}cout << endl;mp["left"] = "左,左边";mp["right"] = "右,右边";for (auto& kv : mp){cout << kv.first << ":" << kv.second << endl;}
}void test_map2()
{map<string, int> mp;string arr[] = { "苹果","西瓜","猕猴桃","苹果","香蕉","西瓜","苹果","梨" };for (auto& e : arr){++mp[e];}for (auto& kv : mp){cout << kv.first << ":" << kv.second << endl;}
}

3、运行结果

在这里插入图片描述
在这里插入图片描述

六、multimap

1、与map的关系

  • multimap与map基本一致,只是multimap存储的元素是可以重复的,即key可以重复。
  • multimap中没有重载operator[],即multimap不支持使用[]进行下标访问。

2、代码

void test_multimap()
{multimap<string, string> mtp;mtp.insert(make_pair("hello", "你好"));mtp.insert(make_pair("hello", "你好呀"));mtp.insert(make_pair("snow", "雪"));mtp.insert(make_pair("snow", "雪白"));mtp.insert(make_pair("dragon", "龙"));for (auto& kv : mtp){cout << kv.first << ":" << kv.second << endl;}cout << endl;
}

3、运行结果

在这里插入图片描述

本文只是简单介绍了如何使用set与map容器,没有进行详细说明。主要是为了简单地使用而不是深入研究。

本文到这里就结束了,如有错误或者不清楚的地方欢迎评论或者私信
创作不易,如果觉得博主写得不错,请务必点赞、收藏加关注💕💕💕

http://www.yayakq.cn/news/101200/

相关文章:

  • 泰安公司网站建设wordpress 反广告屏蔽
  • 服务器做php网站网站代理怎么做的
  • 网站关键词在哪里看国家开发银行贷款学生在线系统
  • 佛山网站建设优化外包网易怎么样
  • 做网站的公司周年活动成都品牌logo设计
  • 一个做问卷调查的网站互联网运营在线培训
  • 二级域名网站怎么建设公司网站制作模板
  • 哪个网站做设计可以挣钱中国进入一级战备2023
  • 织梦上网站次导航怎么做肃宁网站建设公司
  • 厦门市同安区建设工程质量安全监督站网站山东省建设管理中心网站首页
  • 深圳网站建设公司市场网站制作的付款方式
  • 做公司网站的资料淮南网站建设全包
  • 学做网站开发吗苏州市吴中区住房和城乡建设局网站
  • 阿里云使用wordpress-move哈尔滨seo网站排名
  • 伊利网站建设评价健康码更新视频
  • 沈阳网站建设聚艺科技淮南装饰公司网站建设
  • 怎样自己做网页设计网站可以做羞羞的游戏视频网站
  • 创建网站站点宁波发布最新通报
  • 网站的概念开源镜像网站开发
  • 宁夏手机网站建设广安网站制作设计
  • 网站英语培训班哪个机构好wordpress 执行了两次
  • 自己做的网站点首页出错wordpress主题一键生成
  • 论坛网站推广方案昆明公司网站开发
  • 如何建立自己音乐网站网站建设模板免费下载
  • 做阿里云网站网站后台的东西都是要上传到在虚拟主机上面吗
  • 网站搜索工具金阳建设集团网站
  • dede 后台 不能保存网站名称wordpress 留言本
  • 网站怎么做动态主图找人做seo要给网站程序
  • wordpress建2个网站重庆搜索引擎优化
  • 网站关键词和网页关键词的样本国家企业信息公示网查询全国