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

notepad做网站技巧百度老旧版本大全

notepad做网站技巧,百度老旧版本大全,iis wordpress ftp,外汇网站源码 aspset和map就是我们上篇博客说的key模型和keyvalue模型。它们属于是关联式容器,我们之前说过普通容器和容器适配器,这里的关联式容器就是元素之间是有关联的,通过上篇博客的讲解我们也对它们直接的关系有了一定的了解,那么下面我们先…

setmap就是我们上篇博客说的key模型keyvalue模型。它们属于是关联式容器,我们之前说过普通容器和容器适配器,这里的关联式容器就是元素之间是有关联的,通过上篇博客的讲解我们也对它们直接的关系有了一定的了解,那么下面我们先看一下set的简单使用,set其实翻译过来是集合的意思

可以看到,set中的每个值都是唯一的,不能有重复值,它的底层就是一个二叉搜索树,下面是它的构造函数

它有默认构造,可以用一段迭代器区间构造,还有拷贝构造,它也是有迭代器的,它的遍历顺序就是中序遍历,为了使遍历是有序的

下面一个比较关键的就是它的insert,它的insert具有排序加去重的功能,就是说插入后就有序并且存在的值不会被插入。

并且这里面的key值是不允许修改的,因为一旦修改,他就不满足相应的性质了。下面一个是我们的find

可以看到如果成功找到就返回迭代器,如果找不到就返回end()的迭代器,所以我们就可以这么写

下面的删除函数也是比较简单的

下面有两个比较有用的函数,就是

分别是下限和上限

这个是返回大于等于val值的最靠近begin的迭代器

这个是返回大于val值的最靠近begin的迭代器,那么为什么叫上限和下限呢?这都是有实际意义的,它们两个组合到一起恰好可以组成一段左开右闭的区间,比如像下面这样

我给定一个区间,它就可以很好的打印,并且我这里it2指向的值还是8

这就是左开右闭的意义

有了我们上面的set,还有一个multiset,它们的区别就是multiset可以存相同的值

我们这里的find就返回查找到的中序遍历的第一个值,还有一个count函数就返回相同值的个数

说完了set,我们说一下map,翻译过来是映射的意思,显而易见就是key和value之间的映射,同样用来比较的key不能修改,value是可以修改的

我们可以看到,我们不是要一次插入key和value嘛,于是我们把他们放到一个对象里边,这个对象的类是用类模板来生成的,那我们先了解一下这个类模板pair

这是一个类模板,有两个公有的成员first和second,意味着我们可以直接访问。还有一个重要的函数

我们可以用来创建对象,那我们就用map的insert来用一下pair,我们pair是没有重载<<的,所以我们自己去实现打印,就是先打印first,后打印second,就像下面这样

我们的map中也是,key值不能相同,假如我插入一个与map中key值相同的,那么它既不会插入也不会更新。下面一个非常重要的就是重载方括号

我们大概可以看出什么呢?就是方括号中是一个key值,并且这个函数返回key值对应的value值的拷贝。然后它又说这个函数相当于下面那个式子,于是我们就需要看看insert函数有什么东西

我们看第一个函数声明,它这里的value_type也给了解释,不是我们之前说的kv中的v,而是一个pair类的对象

它这里的返回值也是不同的,虽然也是一个pair类的对象,但是里边是一个位置,一个bool值,表示是否插入了

于是我们再返回方括号重载那里,

把这个分一下我们就可以看出方括号重载的本质实际上是调用insert,调用完insert后取insert的返回值的first(这是一个迭代器,记录插入元素的位置),再通过这个位置找到key对应的value再返回value的引用。由此可以看出重载方括号其实有insert的作用,所以重载方括号有以下的作用

int main() {map<string, string>dict;//先插入一些元素pair<string, string> p1("banana", "香蕉");dict.insert(p1);dict.insert(pair<string, string>("orange", "橘子"));dict.insert({ "apple","苹果" });dict.insert(make_pair("watermelon", "西瓜"));//operator[]的作用dict["pear"];//插入,不给value值,就用value值的默认构造生成一个值cout << dict["banana"] << endl;//查找value值dict["orange"] = "桔子";//修改value值dict["peach"] = "桃子";//插入+修改value值for (auto& e : dict) {cout << e.first << ":" << e.second << endl;}return 0;
}

于是,我们之前说的统计水果还可以用insert的返回值的特性实现

int main() {string str[] = { "草莓","香蕉","苹果","橘子","草莓","香蕉","香蕉","苹果","橘子","草莓","香蕉", };map<string, int>m;for (auto& e : str) {pair<map<string, int>::iterator, bool> ret;ret = m.insert({e,1});if (ret.second == false) {ret.first->second++;}}for (auto& e : m) {cout << e.first << ":" << e.second << endl;}return 0;
}

同理,我们还有一个multimap,就是其中key值可以有相同的,并且这个类是没有重载方括号的,因为key值相同的两组元素value值不同,这是没有办法实现的

http://www.mmbaike.com/news/43456.html

相关文章:

  • 国外域名注册哪个网站好网站推广软文
  • 山东外贸行业网站开发互联网营销师证书含金量
  • 学做ppt的网站公司市场营销策划方案
  • wordpress 改造哈尔滨seo
  • 杭州哪个网站建设最好seo营销推广全程实例
  • centum wordpress网站运营seo实训总结
  • 用java做网站可以吗百度网址安全中心
  • 一家做土产网站2345网址导航用户中心
  • 企业网站管理系统建站系统
  • wordpress建站显示网站图标百度指数查询官网
  • 巴中网站建设培训班开网站需要投资多少钱
  • 用dw如何做网站自媒体培训学校
  • 雅安网站开发最吸引人的营销广告文案
  • 海外服务器哪家好免费的seo网站下载
  • 如何用 python 做网站什么软件可以找客户资源
  • 如何用frontpage2003做网站宁波seo外包引流推广
  • 互联网哪个专业前景好网站搜索引擎优化的方法
  • 微信公众号怎么创建优惠券aso优化排名违法吗
  • 网站如何做淘宝支付宝支付网店运营推广实训
  • 创龙企业方案解决英文seo外链发布工具
  • 服饰类网站开发项目在线之家
  • 成都网站优化方案武汉seo服务外包
  • 西安免费做网站公司杭州线上推广
  • 网站设计版权如何免费建立一个网站
  • 政府门户网站建设的问题seo学习网站
  • 上海市住房和城乡建设部官方网站广州网站优化公司如何
  • 北京平台网站建设费用登录百度账号注册
  • 织梦免费模板dede源码seo厂商
  • 成都网站建设58百度官方推广
  • 卖东西怎么做网站seo辅助优化工具