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

橙色企业网站源码合肥做网站行吗

橙色企业网站源码,合肥做网站行吗,wordpress基本设置,家在深圳论坛容器分为三类,顺序容器,关联容器和适配器。顺序容器又分为连续的容器(vector,array),顺序容器中的离散容器(list,slist,forward_list),离连形的de…

        容器分为三类,顺序容器,关联容器和适配器。顺序容器又分为连续的容器(vector,array),顺序容器中的离散容器(list,slist,forward_list),离连形的deque;关联容器有set,map,mutilset,mutilmap,以及用哈希表实现的unordered_set,unordered_map。

1.顺序容器

       连续型

        第一个也是最常用的vector,vector元素存放都是连续的,vector开辟内存是以2的倍数增长;还有一个特点就是只能从尾部添加元素。这两个特点使vector具有以下性质:

适用于可以快速随机查找,在尾部增加删除元素的情况

vector<int> a;
//常用操作a.push_back();//在尾部插入元素a.front(); //第一个元素a.back();//最后一个元素a.size(); //当前a在内存中有多少个元素a.capacity();//实际在内存中开辟了多少元素(2的倍数增加)a.size();a.empty();
        离散型

        list,我们所熟知的双向链表,可以在双端进行插入删除,不支持随机访问;适用于频繁插入删除的情况。

        list还有一个值得注意的点,list内部封装了sort()排序,一般来说,在排序的时候,如果容器内部有sort(),优先采用容器内部的排序函数,而不采用algorithm库中的排序。

常用操作

.size();
.front();
.back();
.sort();
.push_back();  .pop_back();  //在尾部进行插入删除
.push_front();  .pop_front();  //在头部进行插入删除

        forward_list,即单项链表,学过DS的,应该都熟知其性质,在操作上和list类似,没有了在头部插入和删除操作。

        离连型

        deque,双端队列,分段连续,但是让使用者感觉是连续的,每次扩充都是一个连续的buff,具有以下性质:

1,是双端队列类模板,双端队列容器由若干个块构成,每个块中的元素的地址是连续的,但是块的地址是不连续的,

2,可以从前面或后面快速的插入与删除元素,并可以快速地随机访问元素,但在中间位置插入和删除元素速度较慢

3,deque容器不像vector那样把所有的元素保存在一个连续的内存块,而是采用多个连续的存储块存放数据元素,所以空间的重新分配要比vector快,因为重新分配空间后原有的元素不需要复制

     常用操作可以和vector类比,也可以和list类比

[]// 可以随机访问
.size();
.front();
.back();
.sort();
.push_back();  .pop_back();  //在尾部进行插入删除
.push_front();  .pop_front();  //在头部进行插入删除

2.容器适配器

        先跳过关联性容器,先来看容器适配器,在源码实现层面,两个适配器stack和queue,都是操作受限的deque。学过DS对这stack和queue的性质应该很清楚。

stack常用操作

.empty();
.size();
.push();
.pop();
.top();//返回栈顶元素

queue常用操作

.empty();
.size();
.front();//队头元素
.back();//队尾元素
.push();//队尾插入元素
.pop();//队头弹出元素

3.关联型容器

        关联型容器,按照存放的元素分类set(存放单个元素)和map(存放键值对);其中set(元素不可重复),map(元素不可重复),mutilset(允许重复元素),mutilmap(允许重复元素)底层是由红黑树来实现的,而unordered_set(不能修改元素,只可以插入删除)和unordered_map底层是由哈希表来实现的。

set的常用操作

// set/multiset常用成员函数
empty()://判断容器是否为空
size()://返回容器中的实际元素个数
insert()://插入元素
erase()://从容器中删除一个或几个元素
clear()://删除所有元素
count(k)://返回容器中关键字k出现的次数
find(k)://如果容器中存在关键字为k的元素,返回该元素的迭代器,否则返回end()值
upper_bound()://返回一个迭代器,指向关键字大于k的第一个元素
lower_bound()://返回一个迭代器,指向关键字不小于k的第一个元素
begin()://用于正向迭代,返回容器的第一个元素
end()://用于正向迭代,返回容器的最后一个元素后面的一个位置
rbegin()://用于反向迭代,返回容器的最后一个元素的位置
rend()://用于反向迭代,返回容器的第一个元素前面的一个位置

map的常用操作

//pair类结构的声明形式如下:
struct pair{T first;T second;
}
// pair中的first为第一个分量(在map中对应key),second为第二个分量(在map中对应value)
pair <double,double> p1;   // 定义pair对象p1
cin >> p1.first >> p1.second;
// 同时pair对==,!=,<,>,<=,>=共六个运算符进行重载,提供了按照字典序对元素进行大小比较的比较运算符模板函数
// map/multimap的主要成员函数如下
empty()://判断容器是否为空
size()://返回容器中的实际元素个数
map[key]://返回关键字为key的元素的引用,如果不存在这样的关键字,则以key作为关键字插入一个元素(不适合multimap)
insert(elem)://插入一个元素elem并返回该元素的位置
clear()://删除所有元素
find()://在容器中查找元素
count()://容器中指定关键字的元素个数(map中只有1或者0)
begin()://用于正向迭代,返回容器中的第一个元素位置
end()://用于正向迭代,返回容器中最后一个元素的位置
rbegin()://用于反向迭代,返回容器中最后一个元素的位置
rend()://用于反向迭代,返回容器中第一个元素前面的一个位置
// 在map中修改元素
map<char,int> mymap;
mymap['a'] = 1;// 获取map中的值
int ans = mymap['a'];#include<map>
map<char, int> mymap;
mymap['a'] = 3;
map<char, int>::iterator it;
for (it = mymap.begin(); it != mymap.end(), ++it) {cout << it->first, it->second;
}

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

相关文章:

  • 做网站的英文温州建校官网
  • 做微信的网站秀客需要企业网站开发
  • 网站样式下载重庆市沙坪坝区小龙坎街道
  • 图片做网站网站前期运营策略
  • 建设银行信用卡网站会员注册wordpress技术站主题
  • 做爰全过程网站杭州seo网络公司
  • 网站主体负责人数字广东网络建设有限公司是国企吗
  • 蚌埠的网站建设可以做业务推广的网站有哪些内容
  • 最受欢迎的建站平台网站后台管理系统界面
  • 企业网站免费建设工具做自适应网站公司
  • 上海网站建设定制公wordpress 主题管理
  • 网站保障体系建设朝阳网络推广公司
  • 太原网站建设培训厦门logo设计公司
  • 海外注册域名的网站的广州建网站的公司
  • 鞍山网站建设公司电子信息工程移动互联网就业方向
  • wordpress 网站播放器插件下载风景旅游网页制作素材
  • 竞争者网站建设情况网络工程设计是干什么的
  • 做网站是干嘛的无锡企业推广
  • 学校 网站建设 报销手机网站 侧边栏导航
  • 做网站需要买域名地推接单网
  • 织梦源码网站建设好了后登录不了网站设计字体
  • 广州微网站周浦网站建设公司
  • 计算机编程是做网站公司名字大全免费取名
  • 中山建网站报价制作网站的顺序
  • 学校网站页面设计龙岩百度推广
  • 淘客网站怎么备案金环建设集团网站
  • 湖南网站建设mxtiawordpress内置播放器
  • 网站开发一般多少钱建筑模板厂投资多少钱
  • 广告推广平台网站百度推广入口页面
  • 静态网站可以申请域名吗网站备案要花钱吗