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

帮人做图挣外快的网站网站seo推广平台

帮人做图挣外快的网站,网站seo推广平台,山西省政府网站建设的公司,做网站需要学php吗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/wzjs/191939.html

相关文章:

  • 网站限制浏览次数是怎么做的武汉seo管理
  • 珠宝网站建设以服务营销出名的企业
  • 渠道游戏官网seo关键词分析
  • 陕西企业电脑网站制作大白兔网络营销策划书
  • 网站app的区别制作网页的工具软件
  • 网页制作中的常见问题北京百度seo服务
  • 网站建设公司推广方案百度新闻官网
  • pc网站怎么做com域名多少钱一年
  • 做网站商机常州网站seo
  • 怎么做一个自己网站天津seo
  • 番禺区网站建设哪里有在线资源链接
  • 政府网站建设 报价百度用户服务中心
  • 赣州市网站建设公司建站推广网站
  • be备案网站网站建设教程
  • 新房网站建设公司google seo是什么意思
  • 网站设计如何开始semi
  • 轰趴猫wordpress关键词排名优化公司推荐
  • 网站优化怎么做论坛最新域名查询ip
  • 网站建设经费方案湖南网站优化
  • 荣成做网站的公司加快实施创新驱动发展战略
  • 定制网站建设服务公司黄页推广引流网站
  • 做网站包含的技术谷歌seo和百度seo区别
  • 空中花园做网站的公司手机优化大师哪个好
  • 建网站系统平台安卓手机优化神器
  • 长沙浏阳市疫情最新数据消息香港seo公司
  • 石狮建设局网站网络策划营销
  • wordpress站添加根部单页打不开广告设计公司
  • 免费做网页的网站线下引流的八种推广方式
  • 两个wordpress互通seo网站推广批发
  • 做便宜网站网页设计制作网站教程