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

一个ip 做2个网站在线制作名片免费

一个ip 做2个网站,在线制作名片免费,天津建设集团网站,wordpress企业博客主题C中的右值引用与移动语义的理解 从三个层面出发,什么是右值引用和移动语义;为什么需要右值引用和移动语义、std::move作用 一、什么是右值引用与移动语义 右值引用:C中定义的对右值的引用 int && a 5; // 这里a的地址就是这个语…

C++中的右值引用与移动语义的理解

从三个层面出发,什么是右值引用和移动语义;为什么需要右值引用和移动语义、std::move作用

一、什么是右值引用与移动语义

右值引用:C++中定义的对右值的引用

int && a = 5; // 这里a的地址就是这个语句中5的地址
int b = 5; // 这里b的地址和这个语句中5这个临时变量

在这里插入图片描述

**移动语义:**对于含有指针类型作为成员数据的类,使用移动而不是深拷贝进行初始化或者赋值。具体体现就是类的移动构造函数和移动赋值函数;也就是传入一个右值引用(就相当于给这个临时变量),然后让本对象的指针的值直接等于该临时对象指针的值,然后将临时对象的指针再置为空。这样避免了深拷贝那样的内存开销。

二、为什么需要右值引用和移动语义

为了避免像深拷贝操作那样的内存开销。比如现在我有一个类,其定义如下:

class T{char* s; //字符串
public:T(){s=nullptr;}T(const char* s){this->s = new char[strlen(s)+1]; //新分配内存strcpy(this->s, s); //为新分配内存赋值}// 拷贝构造函数T(const T & t){this->s = new char[strlen(t.s)+1]; //新分配内存strcpy(this->s, t.s); //为新分配内存赋值}// 移动构造函数T(T && t){this->s = t.s;t.s = nullptr;}
};

对于T t(T("ikun2")); 语句,没有移动构造函数的话,会调用深拷贝构造函数T(const T & t),会新分配内存。但是如果有移动构造函数的话,该语句会调用移动构造函数,就不会进行新分配内存的操作。

三、std::move

std::move用于将一个对象转为右值引用。相当于告诉编译器这个对象我后续不会再使用,你可以把这个对象占用的内存给分配掉。

void Tensor<float>::Padding(const std::vector<uint32_t>& pads,float padding_value) {CHECK(!this->data_.empty());CHECK_EQ(pads.size(), 4);// 四周填充的维度uint32_t pad_rows1 = pads.at(0);  // upuint32_t pad_rows2 = pads.at(1);  // bottomuint32_t pad_cols1 = pads.at(2);  // leftuint32_t pad_cols2 = pads.at(3);  // right// 请补充代码arma::fcube new_data(pad_rows1+pad_rows2+this->data_.n_rows, pad_cols1+pad_cols2+this->data_.n_cols, this->data_.n_slices);new_data.fill(padding_value);new_data.subcube(pad_rows1, pad_cols1, 0,pad_rows1+this->data_.n_rows-1, pad_cols1+this->data_.n_cols-1,this->data_.n_slices-1)=this->data_;this->data_ = std::move(new_data);
}

比如这个函数最后使用this->data_ = std::move(new_data);因为new_data后续不会再被用到,且为了this->data不用再重新分配内存来接收new_data的值,所以使用std::move减小内存开销,提高性能;

http://www.dtcms.com/a/456364.html

相关文章:

  • 沈阳优化网站市场营销管理
  • 国内装饰行业网站制作工程项目管理软件排名
  • 建站中心购买模板做网站
  • 网站备案价格蚌埠网站建设公司
  • 阿里巴巴公司网站建设优化网站教程
  • 网站制作常用代码做推广的网站带宽需要多少
  • 免费seo快速排名工具南宁关键词优化公司
  • 微网站怎么做ui设计手机界面
  • 网站 数据报表如何做建个网站费用大概多少钱一年
  • 产品网站别人是如何做优化的个人作品集网站是怎么做
  • 网站建设会议纪要网站建设公司利润
  • 群辉做网站服务器定制建设网站
  • 定制直播app网站推广优化排名教程
  • php网站开发推荐书籍嵌入式软件开发语言
  • 做长图网站wordpress引导页模板
  • dedecms菜谱网站源码购物网站建设
  • 深圳建设网站龙岗网站建设php wordpress xmlrpc
  • 500云空间网站怎样网站制作设计
  • 网站开发软文茂名手机网站建设公司名录
  • 静态展示网站多少钱制作相册视频
  • 东莞建设网 东莞市住房和城乡建设局门户网站wordpress给公司建站
  • 网站信息化建设建议书营销型企业、公司网站案例
  • 做公司网站主要需要什么科目wordpress to微博
  • 泉州企业网站开发域名访问网站 过程
  • wordpress上传织梦seo优化常识
  • 网站建设与设计的论文pyton怎么做网站的代码
  • 做网站设计师要提供什么个人网站设计要求
  • 买男装最好的购物网站门户网站建设原则
  • 访问网站有音乐背景怎么做优化就是开除吗
  • 企业百度网站建设广东深圳电子厂