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

太原市建设交易中心网站首页品牌推广策略有哪几种

太原市建设交易中心网站首页,品牌推广策略有哪几种,网站顶部地图代码怎么做,免费网站建设可信吗适配器模式(一种设计模式)/配接器 什么是适配器:例如充电器就叫做电源适配器 本质:就是一种转换 虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而…

适配器模式(一种设计模式)/配接器

什么是适配器:例如充电器就叫做电源适配器                                               

本质:就是一种转换

虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和queue都是对其他容器进行了封装,STL中stack和queue默认封装的是deque。

template<class T, class Containter = deque<T>> // 库里用的是一个叫做deque的容器来做缺省参数

补充:deque(双端队列--但并不是真的队列)

template<class T, class Alloc = allocator<T>> class deque;

这是一个看起来挺牛逼的容器,它有着 vector 和 list 的一部分优点(支持下标随机访问([])、头插/删、尾插/删效率高),但是,它的中间插入删除会很麻烦,效率不高,因为要在中间插入删除数据只有两种办法:

  1. 将 该位置的数据删除/在该位置插入数据 时,将后面的数据(不仅当前这个buff的,包括后面buff的数据)全部往 前/后 挪动(这很麻烦)
  2. 将 该位置的数据删除/在该位置插入数据 时,只挪动当前这个buff的数据,再直接修改这个buff的大小(每个buff的大小是可以不同的,但这会导致你要找第i个值的时候就不能用下面的方法来算了)

然后,它的[]的效率不够极致,比vector[]的访问效率慢很多(可以写个 Test_OP 测试一下,就是同样的数据分别存在 vector 和 deque 两个容器中,然后排序),在大量使用 [] 的情况下,deque 的 [] 效率大概只有 vector 的 [] 的一半。

其底层原理大致是:(类似于一个动态的二维数组)

由一个中控指针数组,里面存放的都是指针,每个指针指向一个小数组(buff)

注意:该数组存放指针并不是从头开始存放的,而是从数组的中间开始存放,这样才能方便头插

注意:下述方法建立在每个buff大小要一样大的时候,才正确

假设每个buff的大小为N,那么当你想找第 i 个值的时候,先看一下第一个 buff 是不是满的?是满的就先将 i-=第一个buff的数据个数,再执行接下来的操作(如果第一个buff是满的,就直接走下面的操作),这个值就在 第 i/N 个 buff里的 第 i%N 位置,要尾插的时候,就先看一下最后一个buff满了没 ?直接往这个buff里存 : 再开一个buff存,要头插的时候(和尾插同理)。

总结:虽然deque并不是非常完美,但是它的优点支持了它成为了stack和queue的模板参数的缺省参数

template <class T, class Containter = std::vector<T>> // 注:模板参数也可以使用缺省参数
class stack											  // 这里模拟的栈就是容器适配器模式的栈
{
public: // 注:_con调用的函数需是各个容器都有的函数,不能是某个容器特有的函数void push(const T &x){_con.push_back(x);}void pop(){_con.pop_back();}const T &top(){return _con.back(); // ex:这里就不能用 [] 来返回最后一个元素,因为并不是所有容器都支持 []}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:// vector<T> _v; // 注意:并不是对 vector 进行直接封装就好了Containter _con; // 而是多加了一个模板参数,使能够对各种类型的容器进行转换(默认对vector进行的封装)
};void test_stack()
{// stack<int, std::vector<int>> st; // 数组栈// stack<int, std::list<int>> st; // 链式栈stack<int> st;st.push(1);st.push(2);st.push(3);st.push(4);while (!st.empty()){std::cout << st.top() << " ";st.pop();}std::cout << std::endl;
}

http://www.dtcms.com/wzjs/483202.html

相关文章:

  • 最新的新开传奇网站上海优化价格
  • 做内贸的网站百度资源共享
  • 怎么看网站到期时间无锡网站建设优化公司
  • 手表网站建设规划书广告营销顾问
  • 网页设计制作毕业论文seo收费标准
  • 安徽网站建设推广网页分析工具
  • 给公司网站做seo百度快速收录办法
  • 织梦手机网站源码搜索引擎优化的简称
  • 河东做网站的公司深圳seo外包
  • 潜江官方新闻天猫seo搜索优化
  • 网站建设图片链接方法百度搜索指数的数据来源
  • 做设计网站的工作怎么样的zac博客seo
  • 自己做的网站买域名多少钱如何查询网站收录情况
  • 壁纸网站模板广州品牌营销服务
  • 网站建设犀牛电子商务seo
  • 京东的网站建设分析如何做推广引流赚钱
  • 1688成品网站源码十大搜索引擎神器
  • 光谷做网站推广哪家好长沙网站制作
  • o2o电子商务网站建设厦门seo排名优化
  • 部门网站建设的意义成都最新动态
  • 通过网站如何做海外贸易他达那非片能延时多久
  • 广州网址大全高手优化网站
  • 公司网站地图怎么做网络营销八大职能
  • wordpress 批量加密谷歌搜索引擎优化seo
  • 免费建手机网站的软件苏州关键词搜索排名
  • Paas网站建设百度网站名称
  • 写作网站签约都要上传身份证吗八大营销模式有哪几种
  • 常德网站建设厦门网站制作福州seo招聘
  • 网站建设 培训软文街官网
  • wordpress站点网站地图网站监测