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

最牛视频网站建设做网站的热门行业

最牛视频网站建设,做网站的热门行业,wordpress父网页,网站建设方法class pair 可将两个 value视为一个单元。C标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value#xff0c;也需要用到 pair#xff0c;例…class pair 可将两个 value视为一个单元。C标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value也需要用到 pair例如 minmax() pair的结构定义于utility且提供如下所示各种操作原则上你可以对pair执行 creatcopy/assign/swap及compare操作。此外它还提供first_type和second_type类型定义式用来表示第一 value和第二 value的类型。元素访问为了让程序能够处理pair的两个值它提供了“直接访问对应数据成员”的能力。事实上由于它是个 struct而不是class以至于所有成员都是publicnamespace std{templatetypename T1,typename T2struct pair{T1 first;T2 second;};}如果要实现一个泛型函数模板用以将一个 value pair写入一个stream内你必须templatetypename T1, typename T2std::ostream operator(std::ostream strm, const std::pairT1, T2 p){return strm [ p.first , p.second ];}另外自C11起你可以对pair使用一份tuple-like接口。因此你可以使用tuple_size::value获得元素个数使用 tuple_element::type获得某指定元素的类型也可以使用get()获得first或second typedef std::pairint, float InFloatPair;InFloatPair p(42, 3.14);int main(){std::get0(p);// p第一个元素。std::get1(p);// p第二个元素。std::tuple_sizeInFloatPair::value;//获取pair元素个数std::tuple_element0, InFloatPair::type;//获取队组中第一个元素的类型。}构造函数与赋值Default 构造函数生成一个 pair 时以两个“被 default构造函数个别初始化”的元素作为初值。根据语言规则基础类型如 int的default构造函数也可以引起适当的初始化行为。例如std::pairint, floatp;上述形式就是以 int()和 float()来初始化p。这两个构造函数都穿回 0值。Copy构造函数同时存在两个版本版本1接受相同类型的pair版本2是个member template在“构造函数需要隐式类型转换”时被调用。如果 pair对象被复制调用的是被隐式合成的那个copy构造函数。例如上述形式就是以 int()和 float()来初始化p。这两个构造函数都穿回 0值。Copy构造函数同时存在两个版本版本1接受相同类型的pair版本2是个member template在“构造函数需要隐式类型转换”时被调用。如果 pair对象被复制调用的是被隐式合成的那个copy构造函数。例如void f(std::pairint, const char*);void g(std::pairconst int, std::string);void foo(){std::pairint, const char* p(42, hello);f(p);//直接调用g(p);//具有const char*到 string 的隐式类型转换}自C11开始如果 pair用到了某个类型而该类型只有一个 非常数nonconstant的拷贝构造函数将不在编译成功逐块式构造Class pair提供了三个构造函数用以初始化 first和 second成员namespace std{templatetypename T1,typename T2struct pair{pair(const T1 x, const T2 y);templatetypename U, typename Vpair(U x, V y);templatetypename...Args1,typename...Args2pair(piecewise_construct_t, tupleArgs1...first_args, tupleArgs2...second_args);};} 前两个函数提供的是一般行为传递一个实参给 first另一个实参给 second 并且涵盖对移动语义和隐式类型转换的支持。第三个构造函数允许传递两个 tuple的对象将其元素传递给 first 和 second的构造函数。为了强迫执行这样的行为你必须传递 std::piecewise_construct作为额外的第一实参。class Foo{public:Foo(tupleint, float){cout 调用Foo(tupleint, float) endl;}templatetypename...ArgeFoo(Arge...arge){cout 调用templatetypename...Arge Foo(Arge...arge) endl;}};int main(){int a 42;tupleint, float t(1, 2.22);pairint, Foo p1(a, t);pairint, Foop2(piecewise_construct, make_tuple(a), t); return0;} 只有当std::piecewise_construct被当作第一实参class Foo才会被迫使用那个“接受tuple的元素而不是接受 tuple这个整体“的构造函数。如果提供 Foo::Foo(int,float)构造函数的话那么将会调用这个构造函数。对于带有std::piecewise_construct参数的构造函数只有当两个实参都是 tuple 是才会被导致这个行为。便携函数 make_pair()Template 函数 make_pair()使你无须写出类型就能生成一个 pair对象。例如std::pairint, string(42, 0);可以写成下面示例std::make_pair(42, 0);自C11起 class pair需要应付 移动语义所以其对 make_pair()的声明如下namespace std {templatetemplate T1,template T2pairV1, V2make_pair(T1 x, T2 y);}对于这样的模板其中返回值的细节和它们的类型V1V2取决于x和y的类型。且如果make_pair()可使用移动语义那么优先使用移动语义否则使用复制语义。
http://www.dnsts.com.cn/news/132081.html

相关文章:

  • 运城手机网站制作普陀营销型网站建设
  • 网站建设和教学设计模板
  • 网站左侧导航代码手机网站字体大小规范
  • 网络营销策划书 范例seosem有什么区别
  • 黑河市网站建设公司深圳今天新闻头条
  • 网站制作用的软件有哪些做网站需要学jsp
  • linux做网站教程游戏开发公司排名
  • 西安建网站网站推广网站设计技术公司
  • asp网站关键字天津网站建设报价
  • 电子商务网站建设 代码简洁的门户网站
  • 罗湖商城网站设计费用广州推神网络科技有限公司
  • 土特产网站平台建设摄像网站建设
  • 网站建设费用还是网络专业珠海门户网站建设价格
  • 湛江cms模板建站网站系统管理计划
  • 百度推广自己做网站吗有网站公司源码可以重建网站吗
  • 做pc端网站要成本么太原百度搜索排名优化
  • 赣州网站制作公司网络推广可做哪些方面
  • 自己做的网站可以百度推广吗如何制作小程序码
  • 模版建站重庆seo技术分享
  • 大连网站开发 简维科技微信在线使用登录
  • 手机百度收录网站吗2345软件管家
  • 二级域名建站怎样用编程语言做网站
  • 大庆市建设局网站h5网站价格方案
  • 合肥市公司网站建设苍南做网站哪里找
  • wap网站搜索品牌策略怎么写
  • 网站建设价格情况建站网站那个好
  • 怎么创建网站详细流程网站 简单
  • 新密建设局网站可以推广的软件有哪些
  • vue做的网站域名汇总公众号开发者密码怎么重置
  • 雄县网站建设评价一个网站的好坏