转载请注明出处:http://blog.csdn.net/luotuo44/article/details/46779063

 

 

新类型:

 

         int和int&是什么?都是类型。int是整数类型,int&则是整数引用类型。相同int&&也是一个类型。两个引號&&是C++ 11提出的一个新的引用类型。记住,这是一个新的类型。默念10次吧。假设你记住这个新类型,那么非常多疑问都能迎刃而解。而且对《Effective Modern C++》说到的void f(Widget&& w)。就非常easy明确w是新类型的一个值。肯定是一个左值而不是右值,自然就不用去翻第二页了。

        出现了新类型。就像定义一个新类一样。自然有两件事接着要做:怎样初始化、函数匹配(依据參数类型匹配函数)。先看后者。

 

 

 

void fun(int &a)
{cout<<"int &a "<<a<<endl;
}void fun(int &&a)
{cout<<"int &&a "<<a<<endl;
}int main()
{int b = 3;fun(b);return 0;
}

 

 

        main函数中的fun(a)会匹配第一个fun函数。由于第二个fun的參数是int右值引用。不能匹配一个左值。值得注意的是,尽管第二个fun函数的a的类型是右值引用类型,但它却是一个左值,由于它是某一个类型变量嘛。

        那要怎么做才干使得b匹配第二个fun函数呢?强制类型转换,把b强制转换成右值引用类型,也就是使用static_cast<int&&>(b)。此时,自然就会匹配第二个fun函数了。

        在C++ 11中。static_cast<T&&>有一个高大上的替代物std::move。事实上。高大上的std::move做的事情和前面说的差点儿相同。强制类型转换使得匹配特定的函数而已。

        右值引用和std::move引以自豪的高效率又是怎么实现的呢?本文从经典的拷贝构造函数说起,但样例却不经典。

 

class Test
{
public:Test() : p(nullptr) {}~Test() { delete [] p; }Test(Test &t) : p(t.p)//注意这个拷贝构造函数的參数没有const{t.p = nullptr;//不然会在析构函数中,delete两次p}private:char *p;
};int main()
{Test a;Test b(a);return 0;
}

 

 

        注意这个拷贝构造函数的參数没有const。

 

        读者们,你们会认为上面那个Test在拷贝构造函数不高效吗?差点儿是没有不论什么效率上的负担啊。

类似,也能写一个高效的赋值函数。

        可是,一般来说我们的拷贝构造函数的參数都是有const的。有const意味着不能改动參数t。上面的代码也能够看到:将t.p赋值nullptr是必须的。

 

由于t.p不能改动,所以不得不进行深复制。不然将出现经典的浅复制问题。不用说。有const的拷贝构造函数更适合一些,毕竟我们须要从一个const对象中复制一份。

 

 

移动构造:

 

性能的救赎:

        在C++ 11之前,我们仅仅能眼睁睁看着重量级的类仅仅能调用有const的拷贝构造函数,复制一个重量级对象。在C++ 11里面增加了一个新类型右值引用,那能不能用这个右值引用类型作为构造函数的參数呢?当然能够啦。毕竟类的构造函数參数没有什么特别的要求。

习惯上,我们会称这种构造函数为移动(move)构造函数,相应的赋值操作则称为移动(move)赋值函数。

他们的代码也非常easy。例如以下:

 

class Test
{
public:Test() : p(nullptr){cout<<"constructor"<<endl;}~Test(){cout<<"destructor"<<endl;delete [] p;}Test(const Test& t) : p(nullptr), str(t.str){cout<<"copy constructor"<<endl;if(t.p != nullptr){p = new char[strlen(t.p)+1];memcpy(p, t.p, strlen(t.p)+1);}}Test& operator = (const Test& t){cout<<"operator = "<<endl;if( this != &t ){char *tmp =nullptr;if( t.p != nullptr){tmp = new char[strlen(t.p)+1];memcpy(tmp, t.p, strlen(t.p)+1);}delete [] p;p = tmp;str = t.str;}return *this;}Test(Test && t)noexcept : p(t.p), str(std::move(t.str))//怎样移动由string类完毕{cout<<"move copy constructor"<<endl;t.p = nullptr;//记得。不然会对同一段内存反复delete}Test& operator = (Test &&t)noexcept{cout<<"move operator ="<<endl;if( this != &t){p = t.p;t.p = nullptr;str = std::move(t.str);//怎样移动由string类完毕}return *this;}private:char *p;std::string str;
};

 

 

 

 

协助完毕移动构造:

        有了move构造函数和move赋值函数。下一步是协助完毕移动构造/移动赋值。包含程序猿和编译器。假设不协助的话,可能调用的是copy构造函数而不是move构造函数。从前文也能够看到,协助完毕移动构造/移动赋值,事实上也就是使得在函数调用时能匹配參数为右值引用的函数。码农能做的就是强制将一个不须要了的对象调用std::move。

 

如以下代码:

 

int main()
{Test a;Test b = std::move(a);//调用move构造函数Test c = a;//调用copy构造函数return 0;
}

 

 

        尽管上面的代码在构造b的时候调用了移动构造。但明显上面代码一点都不正常,为什么不直接构造b呢?全然用不着move构造啊。此时可能有读者会想到这样一个用途:我们能够为一个暂时对象加上std::move啊,比方operator + 的返回值。实际上这是画蛇添足的。

由于编译器会为这个暂时对象当作右值(准确说应该是:将亡值),当然也就自己主动能使用移动构造了。

        难道移动构造是屠龙之技?不是的。

 

移动构造的一大长处是能够高效地在函数中返回一个重量级的类。函数返回值会在后面说到。

除了在函数返回值用到外,在函数内部也能够使用到的。

 

 

std::vector<std::string> g_ids;//全局变量
void addIds(std::string id)
{g_ids.push_back(std::move(id));
}int main()
{addIds("1234");//在加入到g_ids过程中,会调用一次copy构造函数。一次move构造函数std::string my_id = "123456789";addIds(my_id);//会调用一次copy构造函数,一次move构造函数for(auto &e : g_ids)cout<<e<<endl;return 0;
}

 

 

        有读者可能会问,为什么addIds的參数不是const std::string &的形式,这样在对my_id调用的时候就不用为參数id调用一次copy构造函数。

但别忘了,此时id被push进g_ids时就要必需要调用一次copy构造函数了。

        前面用红色标出,对一个不须要的了对象调用std::move强制类型转换。

为什么说是不须要了的呢?由于一个对象被std::move而且作为move构造函数的參数后,该对象所占用的一些资源可能被移走了。留下一个没实用的空壳。注意。尽管是空壳。但在移动的时候,也要保证这个空壳对象能正确析构。

 

        也许读者还是认为移动语义是屠龙之技,那么读者们想一下:vector容器在扩容的时候吧。

 

有了移动语义,vector里面的对象从旧地址搬到新地址,毫不费劲。

 

 

右值引用情况下的返回值问题:

        

        有了右值引用,读者可能会写出以下的代码:

 

Test&& fun()
{Test t;...return std::move(t);
}int main()
{Test && tt = fun();//和下者,哪个才是正确的呢?Test tt = fun();//和上者,哪个才是正确的呢?return 0;
}

 

 

        无疑,在main函数中,还须要考虑一下tt对象是一个Test类型还是Test&&类型。事实上。大错早就在fun函数中铸成了。

        返回的仅仅是一个引用,真身呢?真身已经在fun函数中被摧毁了。Meyers早在《Effective C++》里面就告诫过:不要在函数中返回一个引用。前文也已经说了。右值引用也是一个引用(类型)! 那返回什么好呢? 当然是真身啦!  如同以下代码:

Test fun()
{Test t;...return t;
}int main()
{Test tt = fun();return 0;
}

 

        当函数返回一个对象时,编译器会将这个对象看作的一个右值(准确来说是将亡值)。所以无需在fun函数中。将return t写成return std::move(t);

        当然。实际上t变量的真身还是在fun函数中被摧毁了,但真身里面有价值的东西都被移走了。

对!就像比克大魔王那样,临死前把自己的孩子留下来! 在C++里面。当然不能生成一个孩子,可是能够通过移动构造函数生成一个暂时对象。把有价值的东西移走。由于不是移动到main函数的tt变量中。仅仅是移动到了暂时对象。所以接下来暂时对象还要进行一次移动,把有价值的东西移动到main函数的tt变量中。这个移动过程无疑是一个非常好的金蝉脱壳的经典教程。读者能够执行一下代码,能够看到整个移动过程。

记住。用g++编译的时候要增加-fno-elide-constructors选项,禁止编译器使用RVO优化。

由于这里的RVO优化比移动构造更省力。

所以假设不禁用,会优先使用RVO,而非移动构造函数。

 

初始化:

 

        由于右值引用也是一个引用类型。所以仅仅能初始化而不能赋值。既然这样。那仅仅需讨论什么类型的值才干用于初始化一个右值引用。一般来说,右值引用仅仅能引用右值、字面值、将亡值。所以问题转化为:什么是右值?网上介绍的一个方法是:要能不能将取地址符号&应用于某个标识符。假设能就说明它是一个左值,否则为右值。这种方法好像是行得通的。

只是,我认为没有必要分得那么清楚,又不是在考试。在寻常写代码时,没有谁会写类似a+++++a这种考试代码。我个人认为。记住最常见的那几种就差点儿相同了。

比方,字面量(1。‘c'这类),暂时(匿名)对象(即将亡值)。经过std::move()转换的对象,函数返回值。

其它的右值。还是留给编译器和Scott Meyers吧。假设真的要细究,能够參考stackoverflow上的一个提问《What are rvalues, lvalues, xvalues, glvalues, and prvalues?》

        另一个问题须要说明。const的左值引用(const T&)是一个万能引用。既能够引用左值。也能引用右值。这个是非常特殊,特殊得非常自然。假设Test类未定义move构造函数。但用户又使用Test a = std::move(b)构造变量a。那么终于会调用Test类的copy构造函数。一个类的copy构造函数假设用户不定义。编译器会在必要情况下自己主动合成一个。所以上面的a变量肯定能构造。

 

 

慎重的编译器:

 

        前一段貌似隐隐约约说到编译器不会自己主动合成一个move构造函数。是的。假设用户定义了copy构造函数。析构函数,operator =中的不论什么一个,编译器都不会自己主动为这个类合成一个move构成函数以及move 赋值函数。即使须要用到。详细的规则能够点这里。我个人觉得是由于。当定义了那四个函数中的不论什么一个,都能够觉得这个类不是nontrival的了。

        想一下,在什么情况下我们是须要析构函数和copy构造函数的。

当这个类里面有一些资源(变量)须要我们手动管理的时候。既然有资源要管理。那么读者你认为编译器默认生成的move构造函数的内部实现应该是怎么样的呢?对类里面的全部成员都调用std::move进行移动?还是调用copy构造函数复制一份呢?这样的吃力但又不见得讨好的事情,编译器选择不干。毕竟还有前面说到的const T& 能够引用一个右值。没有move构造函数。copy构造函数顶上就可以。

 

        作为类的设计者,你当然知道那些资源(变量)究竟是move还是copy。假设是move的话。那么直接用=default告诉编译器:别操心。直接用对全部变量move即可了。例如以下:

 

class Test
{
public:Test() p(new int) {}~Test()=default;Test(const Test&)=delete;Test& operator = (const Test&)=delete;Test(Test &&)=default;//告诉编译器Test& operator = (Test &&)=default;//告诉编译器private:std::unique_ptr<int> p;
}

https://www.cnblogs.com/bhlsheji/p/5170081.html

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. c/c++之对称的二叉树---测试用例

    c/c++之对称的二叉树—测试用例 // 题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 分析:通常我们我们遍历树的算法为前序遍历,中序遍历,后序遍历。一般使用前序遍历(根左右)。如果我们定义一种先遍历根节点,然…...

    2024/5/1 17:27:27
  2. Leetcode524

    Leetcode524给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。双指针判断是否为候选答案 sort排序进一步筛选答案 class…...

    2024/5/5 10:06:24
  3. kubernetes给node设置标签及污点

    设置标签kubectl label node xxx.xxx.xxx.xxx type=nginx查看标签kubectl get node xxx.xxx.xxx.xxx --show-labels设置污点kubectl taint node xxx.xxx.xxx.xxx key=nginx:NoSchedule查看污点kubectl describe node xxx.xxx.xxx.xxx...

    2024/4/21 11:19:07
  4. 设计模式之美31--不变模式

    Immutable模式,中文叫作不变模式,它并不属于经典的23种设计模式,但作为一种较常用的设计思路,可以总结为一种设计模式来学习。之 前在理论部分,我们只稍微提到过Immutable模式,但没有独立的拿出来详细讲解,我们这里借Google Guava再补充讲解一下。一个对象的状态在对象创…...

    2024/5/5 7:53:37
  5. 状态管理学习(二)Vuex、简单模拟Vuex

    Vuex 概念回顾 什么是 Vuex Vuex 官网Vuex 是专门为 Vue.js 设计的状态管理库(JS库) Vuex 采用集中式的方式存储需要共享的状态,并以相应的规则保证状态以一种可预测的方式发生变化。相比简单 store 模式 在状态过多时不宜管理 Vuex 提供了一种模块的机制,可以按模块划分不…...

    2024/4/17 10:39:40
  6. 【机器学习】【数据无量纲化】3.数据标准化

    标准化Standardization 标准化,将数据的分布调成标准正太分布,即均值 = 0 方差 = 1 若有的特征方差过大,会主导目标函数,使得模型无法学习其他特征 均值去中心化(均值变为0);方差模块化(方差变为1) x∗=x−均值标准差 x* = \frac{x-均值}{标准差} x∗=标准差x−均值​…...

    2024/4/23 5:11:41
  7. [TJOI2015]旅游,洛谷P3976,LCT维护路径信息

    正题这题主要是用来练手的,只要维护一个mmin,mmax.再维护一个正着来的ans和一个倒着来的ans就可以了.至于维护倒着的ans的原因就是当makeroot的时候要翻转整个区间,这时候直接翻转两个ans就可以了.#include<bits/stdc++.h> using namespace std;const int N=50010; struc…...

    2024/4/11 17:19:03
  8. MappedByteBuffer

    目录 New I/OByteBufferDirect BuffersMappedByteBuffer示例参考理解 New I/O旧的I/O包已经使用nio重新实现过,以便充分利用这种速度提高速度的提高来自于所使用的数据集结构更接近于操作系统执行的I/O方式:通道和缓冲器,唯一直接与通道交互的缓冲器ByteBuffer。旧的I/O库中…...

    2024/5/5 11:20:49
  9. SpringBoot Aop (面向切面编程)学习笔记

    Java SpringBoot AOP 入门 AOP(面向切面编程) SpingBoot中的AOP 增强 提供了 @Aspect @After @AfterReturning @Before @AfterThrowing @Around 五种注解实现切面 @Aspect 标注这是个AOP类 @After 在切点中的对象程序结束之后执行的方法 @AfterReturning 在切点方法执行之…...

    2024/4/11 17:19:01
  10. SwiftUI 1和2之 List控制Toggle选择数量 (教程含源码)onchange ObservableObject willSet

    实战需求 SwiftUI List控制Toggle选择数量,一个列表每行都有个勾选控件,要怎么才能限制它只能勾选条数呢? 本文价值与收获 看完本文后,您将能够作出下面的界面看完本文您将掌握的技能 统计数组内容 监控toggle状态变化 掌握ForEach 按照index循环 ObservableObject如何获取…...

    2024/4/29 0:36:59
  11. 大疆感知算法岗笔试小结

    前段时间参加了大疆的感知算法岗技术笔试,感觉难度确实如同之前网上提到的一样,十分具有挑战性。在配置相关库的闲暇时间抽空稍微记录一下。题型有单选、多选、判断、计算和编程。全卷100分,大部分分数集中在计算和编程上。考察的范围基本上涵盖了大部分cv内容,从多视几何到…...

    2024/4/23 22:31:18
  12. 拼多多2020.9.1笔试题 T2 and T4

    T1简单没套路,T3 a不完。。所以只有T2和T4 import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; /*** 第二题* 给定一个m*n的由0 1组成的矩阵。每个1代表一个士兵* 上下左右相连的兵可以组成一个团* 现在可以移动一个…...

    2024/5/5 9:45:41
  13. 【机器学习】【数据无量纲化】4.标准化和归一化选择

    大多数的情况下,会选择SandardScaler,因为MInMaxScaler对异常值非常敏感。在PCA、聚类、逻辑回归、SVM、神经网络这些算法中StandardScaler往往是最好的选择 MinMaxScaler在 不涉及 距离度量、梯度、协方差计算以及数据需要被压缩到特定区间时使用广泛,比如数字图像 处理…...

    2024/5/2 4:30:39
  14. Android 烧录与修改分区

    Android 烧录与修改分区 文章目录Android 烧录与修改分区常用分区uboot烧录设置u-boot环境变量烧录uboot烧录linux进入fastbootdd复制分区查看文件系统大小查看内存大小挂载点源码定义分区大小分区定义文件fastboot分区挂载备注 常用分区 开机启动画面区:splash1 内核区:boot,…...

    2024/5/3 15:05:56
  15. linux下virtualenv的使用

    搭建虚拟环境 1.安装virtualenv pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv2.创建虚拟环境 virtualenv --python=python3 venv1 #指定虚拟环境是以python3为模板3.是用虚拟环境之前需要激活 source /opt/Envs/env1/bin/activate#source 要激活的虚…...

    2024/4/11 17:18:56
  16. Android 镜像

    Android 镜像 文章目录Android 镜像镜像说明调整分区大小1. 分区2. 块3. 根文件系统解压镜像备注 镜像说明序号 分区 镜像 是否必须 编译 说明 备注1 boot boot.img 是 make bootimage cmdline/内核/设备树2 dtbo dtbo.img 是设备树叠加层3 cache cache.img 是缓存 对应/cache,…...

    2024/5/2 8:53:39
  17. eclipse2020-06搭建SpringMVC

    搭建SpringMVC环境步骤导入SpringMVC环境所需的jar包 配置web.xml,将请求交给框架处理 配置springmvc-servlet.xml进行详细配置 编写Controller 编写JSP页面文章目录配置 `web.xml`配置 `spring-mvc.xml`编写 `Controller` eclipse2020-06配置Dynamic Web Project创建web项目(…...

    2024/5/5 12:56:50
  18. python实现的快速排序

    什么是快速排序: 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进…...

    2024/5/1 14:42:25
  19. Centos虚机创建

    ** Centos虚机创建 ** 1. 打开vm,点击“创建新的虚拟机” 2. 选择典型,点击“下一步”3. 选择“稍后安装操作系统”,点击“下一步”4. 选择“Linux(L)”,版本选择“CentOS7 64位”,点击“下一步”5. 自定义虚机名称、位置,点击“下一步”6. 默认,点击“下一步”7. 点击…...

    2024/5/4 3:28:26
  20. Linux系统常用命令

    linux命令: linux中大小写敏感 ps命令用于显示当前进程 (process) 的状态。 mtype命令打开文件,例:mtype 文件名。 touch ./文件名(创建一个文件) updatedb(进行刷新) rm 文件名(删除该文件)删除目录时出现提示的话 y+回车 删除保护的文档 时用rm -rf 文件名 mkdir 目…...

    2024/4/11 16:06:33

最新文章

  1. STM32中UART通信的完整C语言代码范例

    UART&#xff08;通用异步收发器&#xff09;是STM32微控制器中常用的外设&#xff0c;用于与其他设备进行串行通信。本文将提供一个完整的C语言代码范例&#xff0c;演示如何在STM32中使用UART进行数据传输。 硬件配置 在开始编写代码之前&#xff0c;需要确保以下硬件配置&…...

    2024/5/5 13:50:03
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. linuxday05

    1、makedile原理&#xff08;增量编译生成代码&#xff09; # &#xff08;注释符&#xff09; 目标------依赖 目标不存在//目标比依赖旧才会执行命令&#xff1b; makefile的实现 1、命名要求&#xff08;Makefile/makefile&#xff09; 2、规则的集合 目标文件&#…...

    2024/5/5 8:52:20
  4. 【Godot4自学手册】第三十五节摇杆控制开门

    本节主要实现&#xff0c;在地宫墙壁上安装一扇门&#xff0c;在核实安装一个开门的摇杆&#xff0c;攻击摇杆&#xff0c;打开这扇门&#xff0c;但是只能攻击一次&#xff0c;效果如下&#xff1a; 一、添加完善节点 切换到underground场景&#xff0c;先将TileMap修改一下…...

    2024/5/3 8:55:49
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/4 12:05:22
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/5 12:22:20
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/4 14:46:16
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/4 23:54:44
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/4 12:10:13
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/4 23:54:49
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/4 23:54:44
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/4 14:46:12
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/4 14:46:11
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/4 14:46:11
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/5 2:25:33
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/4 21:24:42
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/5 13:14:22
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/4 16:48:41
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/4 14:46:05
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/5 3:37:58
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/4 23:54:30
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/4 14:46:02
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57