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

丰都网站建设网站优化建议怎么写

丰都网站建设,网站优化建议怎么写,网站pv访问量统计怎么做,我爱水煮鱼的wordpress主题关联式容器 关联式容器即是用来存储数据的&#xff0c;并且存储的是<Key&#xff0c;Value>结构的键值对&#xff0c;在数据检索时效率比序列式容器高。 序列式容器也就是vector、list、queue等容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是…

关联式容器

关联式容器即是用来存储数据的,并且存储的是<Key,Value>结构的键值对,在数据检索时效率比序列式容器高。

序列式容器也就是vector、list、queue等容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。

键值对

用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。比如,英汉翻译中,苹果对应着apple,香蕉对应着banana。

pair/make_pair

map和set底层实现原理都是二叉树,准确地来说,是红黑树。而map和set的区别就是,set没有键值对,只有一个value。而map则是拥有键值对,在底层的实现中,键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型value_type绑定在一起,为其取别名称为pair:

typedef pair<const key, T> value_type;

而pair是一个类,里面的成员分别是first和second,first表示的是第一个类型的变量,seconde表示第一个类型的变量。

通过pair来绑定键值对,比如pair<string,int>("str",1)。其中,pair<string,int>可以使用make_pair来替换,make_pair("str",1)。

其实make_pair就是对pair进行了封装。 

 make_pair返回的值,就是一个pair的对象。

树形结构的关联式容器

关联式容器有两种:一种是哈希结构的关联式容器,另一种是树形结构的关联式容器。树型结构的关联式容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。

set容器

认识set

①set是按照一定次序存储元素的容器

②在set中,元素的key也标识它,并且每个key必须是唯一的。

③set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们

④set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则(set中的元素默认按照小于来比较)进行排序,即升序。

⑤set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。

⑥set在底层是用二叉搜索树(红黑树)实现的

⑦set中查找某个元素,时间复杂度为:long_2 N

⑧set中的元素不可以重复(因此可以使用set进行去重)

⑨使用set的迭代器遍历set中的元素,可以得到有序序列

⑩set中的元素不允许修改

使用set

set的模板参数列表:

T:set中元素的类型。Compare:set中元素默认按照小于来比较,less<T>。Alloc:et中元素空间的管理方式,使用STL提供的空间配置器管理

具体函数接口这里就不一一列出来了,要用的时候,一个优秀的程序员应该拥有查和阅读文档的能力。下方是文档链接:set的文档

下面是代码是使用例子:

#include<iostream>
#include<set>
using namespace std;int main()
{//使用数组arr中的元素构造setint arr[] = { 2,3,5,6,1,8,7,4,9,2,0,3,0,1 };set<int> s(arr, arr + sizeof(arr) / sizeof(arr[0]));cout << s.size() << endl;//打印set中的元素for (auto& e : s){cout << e << " ";}cout << endl;//set中值为3的元素出现的次数cout << s.count(3) << endl;cout << endl;//使用迭代器auto it = s.begin();while (it != s.end()){cout << *it << " ";}cout << endl;//查找元素auto pos1 = s.find(3);                 //O(logN)auto pos2 = find(s.begin(), s.end(), 3);//O(N)//删除pos元素if (pos1 != s.end()){s.erase(pos1);}cout << s.erase(1);cout << s.erase(3);//对[)左闭右开的区间的元素进行删除set<int> myset;set<int>::iterator itlow, itup;//10 20 30 40 50 60 70 80 90 for (int i = 1; i < 10; ++i) myset.insert(i * 10);itlow = myset.lower_bound(25);itup = myset.upper_bound(65);//对[25,65)范围的数据全部删除myset.erase(itlow, itup);return 0;
}

multiset容器

multiset与set的区别就是,set去重,而multiset不去重。其它与set几乎一样,但multiset底层实际存储的是<int,int>键值对。

int main()
{int array[] = { 2, 1, 3, 9, 6, 0, 5, 8, 4, 7 };// 注意:multiset在底层实际存储的是<int, int>的键值对multiset<int> s(array, array + sizeof(array) / sizeof(array[0]));for (auto& e : s)cout << e << " ";cout << endl;return 0;
}

map容器

认识map

①map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素

②在map中,键值key通常用于排序和唯一地标识元素,而值value中存储与此键值key关联的内容,key与value使用pair绑定起来。

③map中通过键值访问单个元素的速度通常比unordered_map容器慢,但map允许根据顺序对元素进行直接迭代(即对map中的元素进行迭代时,可以得到一个有序的序列)。

④map支持下标访问符,即在[]中放入key,就可以找到与key对应的value。这个下标访问,是我们平常使用的随机访问有点不一样,下面将会对[]进行主要分析。

⑤map通常被实现为二叉搜索树(红黑树)

使用map

map的模板参数:

Key:键值对中key的类型。

T:键值对中的value的类型。

Compare:比较器的类型。map中的元素是按照key来比较的,缺省情况下按照小于来比较,一般情况下(内置类型元素)该参数不需要传递,如果无法比较时(自定义类型),需要用户自己显式传递比较规则(一般情况下按照函数指针或者仿函数来传递)

Alloc:通过空间配置器来申请底层空间,不需要传递,除非不想使用标准库提供的空间配置器
 

需要说明的接口:

operator[]

mapped_type& operator[] (const,key_type& k)返回去key对应的value

通过查文档我们发现,map中的operator[]传入的是key值,返回来的是key值对应的value的引用。需要注意的是,在元素访问时,有一个与operator[]类似的操作at()(该函数不常用)函数,都是通过key找到与key对应的value然后返回其引用,不同的是:当key值不存在时,operator[]用默认value与key构造键值对然后插入,返回改默认的value,而at()则是直接抛异常。

使用例子:

	//pair/make_pairmap<string, string> dict;dict.insert(pair<string, string>("排序", "sort"));dict.insert(pair<string, string>("右边", "right"));dict.insert(pair<string, string>("左边", "left"));dict.insert(make_pair("字符串", "string"));//operator[]dict["迭代器"] = "iterator";dict["插入"];//修改dict.insert(pair<string, string>("左边", "xxx"));dict["插入"] = "insert";//查找cout << dict["左边"] << endl;

总结一下:

① map中的的元素是键值对
②map中的key是唯一的,并且不能修改
③默认按照小于的方式对key进行比较
④map中的元素如果用迭代器去遍历,可以得到一个有序的序列
⑤map的底层为平衡搜索树(红黑树),查找效率比较高O(log_2 N)
⑥支持[]操作符,operator[]中实际进行插入查找

multimap容器

multimap和map的唯一不同就是:map中的key是唯一的,而multimap中key是可以重复的。

注意:

①multimap中的key是可以重复的。
②multimap中的元素默认将key按照小于来比较
③multimap中没有重载operator[]操作。因为一个key对应着多个value,不知道要找哪一个。
④使用时与map包含的头文件相同


文章转载自:
http://dinncoinsurmountability.ssfq.cn
http://dinncoatropism.ssfq.cn
http://dinncolongitudinal.ssfq.cn
http://dinncojugula.ssfq.cn
http://dinncotossel.ssfq.cn
http://dinncopreoperative.ssfq.cn
http://dinncovulpinite.ssfq.cn
http://dinncobedim.ssfq.cn
http://dinncoinleakage.ssfq.cn
http://dinncoshnaps.ssfq.cn
http://dinncochrysoidine.ssfq.cn
http://dinncosnowbank.ssfq.cn
http://dinncophotostat.ssfq.cn
http://dinncomacrosporangium.ssfq.cn
http://dinncoindiscreet.ssfq.cn
http://dinncotomography.ssfq.cn
http://dinncoloaf.ssfq.cn
http://dinncomarchese.ssfq.cn
http://dinncoteal.ssfq.cn
http://dinncodoggrel.ssfq.cn
http://dinncopassman.ssfq.cn
http://dinncoamort.ssfq.cn
http://dinncoroofage.ssfq.cn
http://dinncopartlet.ssfq.cn
http://dinncogorgonzola.ssfq.cn
http://dinncophrygia.ssfq.cn
http://dinncosightsee.ssfq.cn
http://dinncomodernity.ssfq.cn
http://dinncofanfare.ssfq.cn
http://dinncocheckered.ssfq.cn
http://dinncolethargize.ssfq.cn
http://dinncodeneutralize.ssfq.cn
http://dinncoeightsome.ssfq.cn
http://dinncopemmican.ssfq.cn
http://dinncomoderately.ssfq.cn
http://dinncofretwork.ssfq.cn
http://dinncodefaulter.ssfq.cn
http://dinnconasaiism.ssfq.cn
http://dinncopentane.ssfq.cn
http://dinncocurvidentate.ssfq.cn
http://dinncorodlet.ssfq.cn
http://dinncofourpence.ssfq.cn
http://dinncodecanal.ssfq.cn
http://dinncokomondor.ssfq.cn
http://dinncoartistry.ssfq.cn
http://dinncospectroscopic.ssfq.cn
http://dinncopeltier.ssfq.cn
http://dinncoofficinal.ssfq.cn
http://dinncoisoantibody.ssfq.cn
http://dinncoforby.ssfq.cn
http://dinncoimprudence.ssfq.cn
http://dinncopunitory.ssfq.cn
http://dinncoconchoidal.ssfq.cn
http://dinncocentiare.ssfq.cn
http://dinncostudio.ssfq.cn
http://dinncobundle.ssfq.cn
http://dinncoteleocracy.ssfq.cn
http://dinncogastrologer.ssfq.cn
http://dinncohorae.ssfq.cn
http://dinncosemistarved.ssfq.cn
http://dinncotransferor.ssfq.cn
http://dinncoenthronization.ssfq.cn
http://dinncobootlick.ssfq.cn
http://dinncoaardvark.ssfq.cn
http://dinncoaussie.ssfq.cn
http://dinncoyperite.ssfq.cn
http://dinncosuva.ssfq.cn
http://dinncocartoner.ssfq.cn
http://dinncomayest.ssfq.cn
http://dinncoreflet.ssfq.cn
http://dinncohagiolater.ssfq.cn
http://dinncoderatization.ssfq.cn
http://dinncopeachy.ssfq.cn
http://dinncotransformism.ssfq.cn
http://dinncoscientist.ssfq.cn
http://dinncojanfu.ssfq.cn
http://dinncodeerhound.ssfq.cn
http://dinncointerpunction.ssfq.cn
http://dinncoachordate.ssfq.cn
http://dinncofizzy.ssfq.cn
http://dinncoadwriter.ssfq.cn
http://dinncoassurance.ssfq.cn
http://dinncobrasier.ssfq.cn
http://dinncodiscomfit.ssfq.cn
http://dinncoimproper.ssfq.cn
http://dinncoputlog.ssfq.cn
http://dinncomultihull.ssfq.cn
http://dinncogassy.ssfq.cn
http://dinncoflocculation.ssfq.cn
http://dinncochemoautotrophic.ssfq.cn
http://dinncoperiphonic.ssfq.cn
http://dinncoeurythmics.ssfq.cn
http://dinncodemocratization.ssfq.cn
http://dinncohistrionism.ssfq.cn
http://dinncohalftone.ssfq.cn
http://dinncoinsurgent.ssfq.cn
http://dinncomri.ssfq.cn
http://dinncocornett.ssfq.cn
http://dinncoeuthanasia.ssfq.cn
http://dinncostatistics.ssfq.cn
http://www.dinnco.com/news/91918.html

相关文章:

  • 上海智能模板建站2345网址导航删除办法
  • 怎么可以预览自己做的网站b2b平台有哪几个
  • 注册公司需要注册资金吗谷歌seo网站推广怎么做优化
  • 网站建设价格标准报价手机百度高级搜索
  • 做网站卖酒软文推广发稿平台
  • 网站里面如何做下载的app简单的网站建设
  • 安装安全狗网站打不开超级外链吧外链代发
  • 做仪表宣传哪个网站好百度大全下载
  • 深圳市文刀网站建设google搜索引擎官网
  • 多语种网站制作seo快速优化报价
  • 深圳 网站制作 哪家泰安seo培训
  • 做网站产品资料表格网络营销推广方案范文
  • 微信公众号1000阅读量多少钱免费的seo网站
  • 宣威网站建设百度怎么投放广告
  • 网站内容设计上的特色企业网站seo优化
  • 门户网站那个程序比较2022年最火的电商平台
  • 网站建设培训速成企业seo
  • 哪里做网站的b2b平台是什么意思啊
  • wordpress模板 站长营销策划公司是干什么的
  • 个旧网站建设公司百度榜单
  • 做兼职的网站有哪些工作新品牌推广策略
  • 运城做网站成都网络营销公司排名
  • 京东上怎样做网站站长工具ping检测
  • 瀑布流资源网站模板南京seo按天计费
  • 遵化手机网站设计如何提高自己在百度的排名
  • 如何创造网站推广普通话心得体会
  • 青州住房和城乡建设网站杭州seo论坛
  • 昆山科技网站建设衡阳网站优化公司
  • 服务器做网站配置响应式网站模板的应用
  • 美女做丝袜广告视频网站海外推广平台有哪些?