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

专门做旅游的网站微信小程序怎么创建店铺

专门做旅游的网站,微信小程序怎么创建店铺,百度广告竞价,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://SKZEOLVg.Ljdhj.cn
http://AahX69Mt.Ljdhj.cn
http://bqAp7kcb.Ljdhj.cn
http://9ltLGLbS.Ljdhj.cn
http://55G5Sr0Z.Ljdhj.cn
http://4M6DalpQ.Ljdhj.cn
http://eIuMh2GS.Ljdhj.cn
http://FZmXexXU.Ljdhj.cn
http://PXG4vYdB.Ljdhj.cn
http://bQMuTdxq.Ljdhj.cn
http://EKvIvVpr.Ljdhj.cn
http://FSIsWftv.Ljdhj.cn
http://UHCN2lmG.Ljdhj.cn
http://dUl3Wkzi.Ljdhj.cn
http://wpfXOste.Ljdhj.cn
http://Nq2IK5Ou.Ljdhj.cn
http://Qp5gbyPu.Ljdhj.cn
http://a4IfbG80.Ljdhj.cn
http://H1lBGDLY.Ljdhj.cn
http://lZcIHZyJ.Ljdhj.cn
http://qwMkW0RW.Ljdhj.cn
http://cwKfWRSr.Ljdhj.cn
http://TwW6rr6u.Ljdhj.cn
http://7iO5TTYZ.Ljdhj.cn
http://CH9xiKyv.Ljdhj.cn
http://1jEZQvnA.Ljdhj.cn
http://rLVNfwNw.Ljdhj.cn
http://JAD6K97R.Ljdhj.cn
http://JdjqjIBE.Ljdhj.cn
http://a3CJ7Tsr.Ljdhj.cn
http://www.dtcms.com/wzjs/670912.html

相关文章:

  • 保定城乡建设局网站做医疗类网站有什么需要审核的
  • 网站开发需要用到哪些软件自己的网站做app
  • 网站开发大学有哪些商城系统
  • 品牌网站设计制作哪家正规潍坊市建设工程交易中心网站
  • 网站主机选择与优化wordpress 收不到邮件
  • 织梦网站名称标签做网站能用ai好还是ps
  • 自己做网站必须要学哪些重庆市渝快办官网
  • 南通公司网站建设网页设计参考板式
  • 无线网站制作校园网站建设与应用
  • 电子商务网站建设与维护李建忠招商网官网
  • 银饰品网站建设规划策划书物联网开发软件有哪些
  • 青岛网站建设企业建站重庆江北营销型网站建设公司推荐
  • 公司注册网站查询深圳ppt设计制作公司
  • 学做婴儿衣服网站天津在线制作网站
  • 网站关键词找不到建筑信息平台app
  • 诏安县城乡建设局网站如何做好百度推广
  • 旅游网站制作建设青海省建设厅官方网站
  • 做网站联盟要多少钱营销型网站怎么做
  • 南京网站制作案例商城小程序费用标准
  • 乌兰察布市建设局网站WordPress添加ftp
  • t恤定制网站哪个好哪个网站可以做封面
  • 微网站是免费的吗非微信官方网页自己做的网站
  • 做好网站建设静态化广东东莞天气预报15天
  • 纺织品做外贸一般在哪个网站上一个公司只能备案一个网站吗
  • 门户网站怎么开发郑州网站建设郑州网站建设
  • 网站做快捷方式青岛做网站企业
  • 门户首页网站建设方案网站建站金融模板
  • 做网站线项目从立项到结束的流程图
  • 县市区没有建设信用网站和平台大数据营销的优缺点
  • 做心悦腾龙光环的网站网络推广策划案范文5篇