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

个人主页网站应该怎样做网络推广预算方案

个人主页网站应该怎样做,网络推广预算方案,住房城乡建设委官方网站,一般在什么网站上做电子请帖最近重温了一下萃取发现其与constexpr有相似之处,记录如下。 一、引出萃取 STL的在中心思想是将容器和算法分开,再通过迭代器iterator这一迭代器来将两者粘合起来。 通过迭代器进行算法计算,需要涉及两个问题: 问题一.通常需要…

 最近重温了一下萃取发现其与constexpr有相似之处,记录如下。

一、引出萃取

STL的在中心思想是将容器和算法分开,再通过迭代器iterator这一迭代器来将两者粘合起来。

通过迭代器进行算法计算,需要涉及两个问题:

问题一.通常需要针对不同类型的迭代器进行不同的算法操作。需要在编译时期获取迭代器的类型信息。

以advance为例,对于random_access_iterator可以在O(1)的时间复杂度完成,但是对于bidirectional_iterator需要在O(n)的时间复杂度完成。

问题二.通常需要运用迭代器的相应型别,相应型别之一就是iterator所指向数据的类型。

C++支持sizeof(),但是不支持typeof()。即使通过RTTI的typeid()获取到类型名称,也不能进行变量声明使用。

解决办法:通过function template的函数推导可以获取到iterator所指向数据的类型。

template<typename Iter, typename T>
void func_impl(Iter iter, T t)
{T tmp;//这里解决了迭代器所指类型的型别问题...//函数实现
};
template<typename Iter>
void func(Iter iter)
{func_impl(iter, *iter);
};
int main
{vector<int> tmp_v = {1,2,3};func(tmp_v.begin());
}

迭代器常用的型别有五种,并不是每一种都可以通过template的参数推导机制获取,我们需要更全面的解法,即traits。

这五种型别是:

  1. value_type
  2. difference_type
  3. reference_type
  4. pointer_type
  5. iterator_category

Traits不是一种C++关键字或一个预定义的构件。

是一种技术,也是C++程序员需要共同遵守的协议。这个技术的要求之一是,它对内置类型或用户自定义类型的表现必须一样好。

“traits必须能够实施与内置类型”意味着“类型内的嵌套信息”这种东西就出局了,因为我们无法将信息嵌套在原始指针内。因此,类型的traits信息必须位于类型自身之外。

标准技术是把它放入一个template及其一个或多个特化版本中。这样的templates在标准程序库中有若干个,其中针对迭代器的被命名为iterator_traits。

template<typename T>//template用来处理迭代器型别的信息
struct iterator_traits;

问题一的答案是引入iterator_category;问题二答案是引入value_type。

二、iterator_category和value_type

iterator_category

iterator_traits的运作方式是针对每一个类型的IterT在struct iterator_traits<IterT>中使用typedef声明一个iterator_category。
这个typedef用来确认IterT的迭代器分类。

iterator_traits以两部分实现上述所言:

第一部分:

首先它要求每一个用户自定义的迭代器类型必须嵌套一个typedef,名为iterator_category,用来确认适当的卷标结构。

例如,deque的迭代器支持随机访问,所以 针对一个deque迭代器的设计如下

template<...>//略写tempalte参数
class deque
{
public:class iterator {public:typedef random_access_iterator_tag iterator_category;};
};

 list的iterator可以双向前进

template<...>//略写tempalte参数
class list
{
public:class iterator {public:typedef bidirectional_iterator_tag iterator_category;};
};

 至于iterator_traits只是类似地响应iterator class的嵌套式 typedef:

template<typename IterT>
class iterator_traits {typedef typename IterT::iterator_category iterator_category;...
};
第二部分:

第二部分专门用来应对指针。

上述方法对用户自定义的Iter类型行得通,但是不适用于指针类型,因为指针不可能嵌套typedef。

因为支持指针迭代器,iterator_traits还特别对指针类型提供了一个偏特化版本。由于指针的行径与random_access迭代器类似,所以iterator_traits为指针指定的迭代器类型是:

template<typename IterT>
struct iterator_traits<IterT*>
{typedef random_access_iterator_tag  iterator_category;...
};

三、constexpr与萃取相关联

---------------------------------有待续写---------------------------------------------------

http://www.hkea.cn/news/658859/

相关文章:

  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略
  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情
  • 电子商务网站设计中影响客户体验的元素有搜索引擎有哪些种类
  • 网站建设难点优化关键词技巧
  • 免费行情网站链接百度知道合伙人官网
  • 餐饮公司网站建设的特点大数据智能营销
  • 济南快速排名刷关键词排名seo软件
  • 系统做网站的地方百度推广登录后台登录入口
  • 集约化网站建设情况广告公司网站制作
  • 网站制作发票字节跳动广告代理商加盟
  • 义乌做网站武汉seo推广优化公司
  • 济宁哪家网站建设公司正规谷歌浏览器 免费下载
  • 有没有女的做任务的网站广东省新闻
  • seo长尾关键词优化如何做网站推广优化
  • 网站搭建服务合同seo排名赚
  • 东莞有什么比较好的网站公司苏州关键词排名系统
  • 做中国供应商免费网站有作用吗浙江网站推广运营
  • mysql8 wordpress百度推广优化是什么意思
  • 做装修广告网站好seo推广公司招商