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

2017网站建设报价方案/河源市seo点击排名软件价格

2017网站建设报价方案,河源市seo点击排名软件价格,学做网站需要买什么书,西安网络推广平台公司class pair 可将两个 value视为一个单元。C标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value,也需要用到 pair,例…

class pair 可将两个 value视为一个单元。C++标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value,也需要用到 pair,例如 minmax()

pair的结构定义于<utility>,且提供如下所示各种操作:

原则上你可以对pair<>执行 creat,copy/assign/swap及compare操作。此外它还提供first_type和second_type类型定义式,用来表示第一 value和第二 value的类型。

元素访问

为了让程序能够处理pair的两个值,它提供了“直接访问对应数据成员”的能力。事实上由于它是个 struct而不是class,以至于所有成员都是public:

namespace std

{

template<typename T1,typename T2>

struct pair

{

T1 first;

T2 second;

};

}

如果要实现一个泛型函数模板,用以将一个 value pair写入一个stream内,你必须:

template<typename T1, typename T2>

std::ostream& operator<<(std::ostream& strm, const std::pair<T1, T2>& p)

{

return strm << "[" << p.first << "," << p.second << "]";

}

另外,自C++11起,你可以对pair使用一份tuple-like接口。因此,你可以使用tuple_size<>::value获得元素个数,使用 tuple_element<>::type获得某指定元素的类型,也可以使用get()获得first或second;

typedef std::pair<int, float> InFloatPair;

InFloatPair p(42, 3.14);

int main()

{

std::get<0>(p);// p第一个元素。

std::get<1>(p);// p第二个元素。

std::tuple_size<InFloatPair>::value;//获取pair元素个数

std::tuple_element<0, InFloatPair>::type;//获取队组中第一个元素的类型。

}

构造函数与赋值

Default 构造函数生成一个 pair 时,以两个“被 default构造函数个别初始化”的元素作为初值。根据语言规则,基础类型(如 int)的default构造函数也可以引起适当的初始化行为。

例如:

std::pair<int, float>p;

上述形式就是以 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::pair<int, const char*>);

void g(std::pair<const int, std::string>);

void foo()

{

std::pair<int, const char*> p(42, "hello");

f(p);//直接调用

g(p);//具有const char*到 string 的隐式类型转换

}

自C++11开始,如果 pair<>用到了某个类型而该类型只有一个 非常数(nonconstant)的拷贝构造函数,将不在编译成功:

逐块式构造

Class pair<>提供了三个构造函数,用以初始化 first和 second成员:

namespace std

{

template<typename T1,typename T2>

struct pair

{

pair(const T1& x, const T2& y);

template<typename U, typename V>pair(U&& x, V&& y);

template<typename...Args1,typename...Args2>

pair(piecewise_construct_t, tuple<Args1...>first_args, tuple<Args2...>second_args);

};

}

前两个函数提供的是一般行为:传递一个实参给 first,另一个实参给 second ,并且涵盖对移动语义和隐式类型转换的支持。

第三个构造函数,允许传递两个 tuple的对象,将其元素传递给 first 和 second的构造函数。为了强迫执行这样的行为,你必须传递 std::piecewise_construct作为额外的第一实参。

class Foo

{

public:

Foo(tuple<int, float>)

{

cout << "调用:Foo(tuple<int, float>)" << endl;

}

template<typename...Arge>

Foo(Arge...arge)

{

cout << "调用:template<typename...Arge> Foo(Arge...arge)" << endl;

}

};

int main()

{

int a = 42;

tuple<int, float> t(1, 2.22);

pair<int, Foo> p1(a, t);

pair<int, Foo>p2(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::pair<int, string>(42, "0");

可以写成下面示例:

std::make_pair(42, "0");

自C++11起, class pair需要应付 移动语义,所以其对 make_pair()的声明如下:

namespace std {

template<template T1,template T2>

pair<V1, V2>make_pair(T1&& x, T2&& y);

}

对于这样的模板,其中返回值的细节和它们的类型V1,V2,取决于x和y的类型。且如果make_pair()可使用移动语义,那么优先使用移动语义,否则使用复制语义。

相关文章:

C++ 11 pair

class pair 可将两个 value视为一个单元。C标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value&#xff0c;也需要用到 pair&#xff0c;例…...

反向传播与随机梯度下降

反向传播实际上就是在算各个阶段梯度&#xff0c;每层的传入实际是之前各层根据链式法则梯度相乘的结果。反向传播最初传入的Δout是1&#xff0c;Δ通常表示很少量的意思&#xff0c;Δout1的时候这样在反向传播的时候算出来的dw和dx刚好就是当前梯度。深度神经网络中每层都会…...

一个conda引起的CPU异常

03/11/2023 登陆访问用户CPU异常 错误描述 早上向往常一样打开机器&#xff0c;突然感觉CPU有点"乱飙"&#xff0c;因为是个人机器&#xff0c;没有别人使用&#xff0c;所以感觉有点问题。 排错流程 首先查看各个进程的资源占用情况 top # 按住P&#xff0c;以CPU的…...

java Date 和 Calendar类 万字详解(通俗易懂)

Date类介绍及使用关于SimpleDateFormat类Calendar类介绍及使用LocalDateTime类介绍及使用关于DateTimeFormatter类一、前言本节内容是我们《API-常用类》专题的第五小节了。本节内容主要讲Date 类 和 Calendar 类&#xff0c;内容包括但不限于Date类简介&#xff0c;Date类使用…...

扩展欧几里得算法及其应用

前言 由于数论的板子真的很抽象&#xff0c;也很难背&#xff0c;所以特此记录扩展欧几里得算法的板子和它的用途 本篇文章只涉及应用&#xff0c;不涉及证明&#xff0c;如需理解证明还请各位移步其他优秀的讲解&#xff01; 扩展欧几里得算法 先粘一下板子的代码 typedef lo…...

JAVA练习75-全排列

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 3月11日练习内容 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目-…...

Linux下Docker安装mysql-超详细步骤

安装Docker Engine官方参考文档&#xff1a;https://docs.docker.com/engine/install/centos/若之前有安装docker&#xff0c;需要先卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \d…...

弹性存储-对象存储OSS部分

对象存储介绍 对象存储&#xff08;object storage service&#xff0c;简称oss&#xff09;&#xff0c;具备与平台无关的rest api接口&#xff0c;可提供99.9999999999%&#xff08;12个9&#xff09;的数据持久性和99.995%的数据可用性。 OSS优势 功能介绍 存储空间bucke…...

强推!30个遥感数据下载网站整理分享

1、中国遥感数据共享网&#xff08;http://rs.ceode.ac.cn/&#xff09;国内存档周期最长的数据网站&#xff0c;对Landsat数据免费共享&#xff0c;也可订购国外商业卫星数据。注册账号&#xff0c;通过审核就可直接下载。2、中国资源卫星应用中心&#xff08;https://data.cr…...

进程系统调用

进程系统调用 文章目录进程系统调用fork()进程创建&#xff1a;fock()fork函数fork用法僵尸进程孤儿进程vfork函数vfork与fork区别exec函数族exec函数族-何时使用&#xff1f;exec函数族语法exec函数族使用区别exit和_exit_exit和exit的区别wait和waitpidfork() 进程创建&…...

dubbo进阶——服务导出

服务导出 在这里记录一下对" Dubbo 导出服务的过程"的研究。 触发时机 public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean, ApplicationContextAware, ApplicationListener<ContextRefreshedEv…...

【竞品分析】如何撰写竞品分析?竞品分析的基本结构?以及优秀的竞品分析案例

文章目录一、撰写竞品分析的意义二、撰写的节点三、竞品分析内容的基本结构四、总结本文对视频 如何撰写竞品分析&#xff08;demo&#xff09;进行了总结。一、撰写竞品分析的意义 竞品分析是指对现有的或潜在的竞争产品的优势和劣势进行评价。现在被广泛应用于互联网产品的…...

海思ubootsd卡协议

在start_armboot()函数中调用mmc_initialize(0)初始化mmc;最终调用到int hi_mci_initialize(unsigned int dev_num)函数;内容如下:static int hi_mci_initialize(unsigned int dev_num) {struct mmc *mmc NULL;static struct himci_host *host;unsigned int regval;unsigned l…...

nuxt3使用总结

目录 背景 安装 项目配置 路由 Tailwindcss引入 全局样式配置 css预处理器 安装 Tailwindcss 项目的配置 部署上线 seo优化 背景 新入职了一家公司&#xff0c;刚进入公司第一个需求就是先做一个公司的官网&#xff0c;需要使用vue写&#xff0c;作为祖师爷的粉丝…...

指向函数的指针详解,以及如何使用指向函数的指针变量做函数参数

指向函数的指针作为函数参数&#xff0c;是 C 语言实际应用中的一个比较深入的部分。 目录 一、什么是函数的指针 二、用函数指着变量调用函数 2.1举例说明 三、怎样定义和使用指向函数的指针变量 3.1定义指向函数的指针变量 3.2指向函数的指针变量详解 3.3通过指针变量…...

Spring——spring整合JUnit

JUnit定义: Junit测试是程序员测试&#xff0c;即所谓 白盒测试 &#xff0c;因为程序员知道被测试的软件如何&#xff08;How&#xff09;完成功能和完成什么样&#xff08;What&#xff09;的功能。 Junit是一套框架&#xff0c;继承TestCase类&#xff0c;就可以用Junit进行…...

保障信息安全:使用PyZbar库识别二维码图片可以快速获取二维码中的信息,保障信息安全。

目录 简介&#xff1a; 源代码&#xff1a; 源代码说明&#xff1a; 效果如下所示&#xff1a; 简介&#xff1a; 不用摄像头识别二维码可以应用在以下场景&#xff1a; 批量处理二维码图片&#xff1a;可以在服务器上使用PyZbar等库来批量处理二维码图片&#xff0c;例如读…...

从LeNet到ResNet:深入探索卷积神经网络

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

计算机组成原理_总线标准

计算机组成原理总目录总线标准 总线标准是系统与各模块、模块与模块之间的一个互连的标准&#xff0c;就像我们用汉语来相互交流一样。 1. 系统总线 ISA总线的扩展插槽&#xff0c;其颜色一般为黑色&#xff0c;比PCI接口插槽要长些&#xff0c;位于主板的最下端。 可插接显卡&…...

蓝桥杯C/C++VIP试题每日一练之芯片测试

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…...

树莓派测试wifi与eth速率

测试网速方法&#xff1a; 1.安装插件&#xff1a; 首先在树莓派端安装iperf3 sudo apt install iperf3PC端也需要安装iperf3&#xff0c;单击下面网址即可 下载网址 压缩包解压到桌面&#xff0c;文件内容如下图所示&#xff1a; 2.开始测速服务&#xff1a; 树莓派端在…...

关系抽取方面的基础

关系抽取方面的基础一、基本概念1. 什么是关系抽取&#xff08;Relation Extraction&#xff0c;RE&#xff09;&#xff1f;2. 都有什么奇怪的关系&#xff1f;3. 任务评价指标二、 关系抽取方法2.1 按模型结构分——Pipeline 和 Joint方法Pipeline方法Joint方法2.2 按解码方式…...

蓝桥杯嵌入式(G4系列):定时器捕获

前言&#xff1a; 定时器的三大功能还剩下最后一个捕获&#xff0c;而这在蓝桥杯嵌入式开发板上也有555定时器可以作为信号发生器供定时器来测量。 原理图部分&#xff1a; 开发板上集成了两个555定时器&#xff0c;一个通过跳线帽跟PA15相连&#xff0c;最终接到了旋钮R40上&…...

多态的定义、重写、原理

多态 文章目录多态多态的定义和条件协变&#xff08;父类和子类的返回值类型不同&#xff09;函数隐藏和虚函数重写的比较析构函数的重写关键字final和override抽象类多态的原理单继承和多继承的虚函数表单继承下的虚函数表多继承下的虚函数表多态的定义和条件 定义&#xff1…...

Angular 配置api代理 proxy 实践

话不多说&#xff0c;直奔主题 $方式一 第一步&#xff0c;在根目录或/src 下新建一个 proxy.conf.json 文件 备注&#xff1a;这里不用纠结文件名称即xxx.xxx.json&#xff0c;只要使用时能找到&#xff0c;且正确配置文件内容格式即可 {"/dev-list": {"target…...

ES: 数据增,删,改,批量操作

1> 指定id 新增 _id 1 新增一条. 此命令重复执行,就是更新id1的数据 POST employee_zcy/_doc/1 {"uid" : "1234","phone":"12345678909","message" : "qq","msgcode" : "1","send…...

伯努利方程示例 Python 计算(汽水流体和喷泉工程)

伯努利原理 在流体的水平流动中&#xff0c;流体速度较高的点比流体速度较慢的点具有更小的压力。 不可压缩流体在到达狭窄的收缩部分时必须加速&#xff0c;以保持恒定的体积流量。 这就是为什么软管上的窄喷嘴会导致水流加速的原因。 但有些事情可能会困扰您这一现象。 如果…...

2022年中职网络安全竞赛——应用服务漏洞扫描与利用解析(详细)

应用服务漏洞扫描与利用 任务环境说明: 服务器场景:Server2115服务器场景操作系统:未知(关闭链接)使用命令nmap探测目标靶机的服务版本信息,将需要使用的参数作为FLAG进行提交;通过上述端口访问靶机系统并探测隐藏的页面,将找到的敏感文件、目录名作为FLAG(形式:[敏…...

yyds,Elasticsearch Template自动化管理新索引创建

文章目录一、什么是Elasticsearch Template&#xff1f;二、Elasticsearch Template的用法2.1、创建模板2.2、验证模板2.3、应用模板2.4、删除模板2.5、组合模板2.6、如何在同一个模板中定义多种匹配模式2.7、模板优先级2.8、提前模拟索引的最终映射三、Elasticsearch Template…...

蓝桥杯嵌入式ADC与DAC(都不需要中断)

目录 1.原理图 &#xff08;1&#xff09;ADC的原理图 &#xff08;2&#xff09;DAC的原理图 2.STM32CubeMX的配置 &#xff08;1&#xff09;ADC的配置 &#xff08;2&#xff09;DAC配置 3.代码部分 &#xff08;1&#xff09;ADC代码 &#xff08;2&#xff09;DA…...