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

永兴网站开发优化seo公司哪家好

永兴网站开发,优化seo公司哪家好,做网站 程序员 暴富,友汇网网站建设管理后台设置C笔记之std::move和右值引用的关系、以及移动语义 code review! 文章目录 C笔记之std::move和右值引用的关系、以及移动语义1.一个使用std::move的最简单C例子2.std::move 和 T&& reference_name expression;对比3.右值引用和常规引用的经典对比——移动语义和拷贝语…

C++笔记之std::move和右值引用的关系、以及移动语义

code review!

文章目录

  • C++笔记之std::move和右值引用的关系、以及移动语义
    • 1.一个使用std::move的最简单C++例子
    • 2.`std::move` 和 `T&& reference_name = expression;`对比
    • 3.右值引用和常规引用的经典对比——移动语义和拷贝语义
    • 4.关于 `data = new char[size + 1];`
    • 5.std::move的使用场景列举

1.一个使用std::move的最简单C++例子

在这里插入图片描述

2.std::moveT&& reference_name = expression;对比

在这里插入图片描述

3.右值引用和常规引用的经典对比——移动语义和拷贝语义

右值引用允许我们利用移动构造函数从临时对象中“窃取”资源,避免不必要的拷贝,从而提高效率。而常规引用则会触发拷贝构造函数,产生一个新的对象副本。

在这里插入图片描述

代码

#include <iostream>
#include <string>class MyString {
public:MyString(const char* str) {size = strlen(str);data = new char[size + 1];strcpy(data, str);std::cout << "Constructor: " << data << std::endl;}// 拷贝构造函数MyString(const MyString& other) {size = other.size;data = new char[size + 1];strcpy(data, other.data);std::cout << "Copy Constructor: " << data << std::endl;}// 移动构造函数MyString(MyString&& other) noexcept {size = other.size;data = other.data;other.size = 0;other.data = nullptr;std::cout << "Move Constructor: " << data << std::endl;}~MyString() {delete[] data;}void printData() const {if (data)std::cout << "Data: " << data << std::endl;elsestd::cout << "Data is empty." << std::endl;}private:size_t size;char* data;
};int main() {MyString str1 = "Hello, World!"; // 调用构造函数MyString str2 = str1;            // 调用拷贝构造函数MyString str3 = std::move(str1); // 调用移动构造函数std::cout << "str1: ";str1.printData(); // 输出空,因为资源已被移动std::cout << "str2: ";str2.printData(); // 输出 "Hello, World!"std::cout << "str3: ";str3.printData(); // 输出 "Hello, World!"return 0;
}

4.关于 data = new char[size + 1];

在C++中,使用以null终止的字符串(C风格字符串)时,需要为字符串的内容分配足够的内存来存储字符,同时还需要一个额外的空间来存储字符串的null终止字符(‘\0’),表示字符串的结束。

例如,考虑字符串 “Hello”,它实际上占用了5个字符的内存,即 ‘H’、‘e’、‘l’、‘l’、‘o’,但为了使其成为一个有效的C风格字符串,需要在字符串的末尾添加一个null终止字符 ‘\0’。

因此,为了正确存储以null终止的字符串,我们需要分配的内存大小应该为字符串的长度加上一个额外的字符来存储null终止字符。这就是为什么在 data = new char[size + 1]; 语句中,使用了 size + 1 来分配足够的内存以容纳字符串内容和null终止字符。

在C++中,通过这种方式分配内存,并将字符存储在数组中,就可以实现以null终止的字符串表示。这种约定允许我们使用标准的C字符串库函数来操作和处理字符串,例如 strcpystrlen 等。

5.std::move的使用场景列举

在这里插入图片描述


文章转载自:
http://replacing.mdwb.cn
http://andragogy.mdwb.cn
http://gilt.mdwb.cn
http://photoconductor.mdwb.cn
http://along.mdwb.cn
http://guerilla.mdwb.cn
http://efflux.mdwb.cn
http://hektometer.mdwb.cn
http://epsomite.mdwb.cn
http://squiz.mdwb.cn
http://cinefluoroscopy.mdwb.cn
http://exciton.mdwb.cn
http://enjoin.mdwb.cn
http://translatese.mdwb.cn
http://mosan.mdwb.cn
http://pampa.mdwb.cn
http://devocalize.mdwb.cn
http://inventress.mdwb.cn
http://capeline.mdwb.cn
http://poncho.mdwb.cn
http://discohere.mdwb.cn
http://tonetic.mdwb.cn
http://lealty.mdwb.cn
http://taipei.mdwb.cn
http://eddy.mdwb.cn
http://preventable.mdwb.cn
http://warthog.mdwb.cn
http://punakha.mdwb.cn
http://nosh.mdwb.cn
http://denture.mdwb.cn
http://franquista.mdwb.cn
http://moisturize.mdwb.cn
http://basinful.mdwb.cn
http://upu.mdwb.cn
http://frizzle.mdwb.cn
http://ocean.mdwb.cn
http://bandoline.mdwb.cn
http://dustless.mdwb.cn
http://itemization.mdwb.cn
http://lengthily.mdwb.cn
http://rrl.mdwb.cn
http://beltline.mdwb.cn
http://areographic.mdwb.cn
http://disrate.mdwb.cn
http://hermetical.mdwb.cn
http://allegorist.mdwb.cn
http://millboard.mdwb.cn
http://cnut.mdwb.cn
http://cisalpine.mdwb.cn
http://curlypate.mdwb.cn
http://france.mdwb.cn
http://euphotic.mdwb.cn
http://shoeblack.mdwb.cn
http://etruscology.mdwb.cn
http://lacet.mdwb.cn
http://translationese.mdwb.cn
http://loblolly.mdwb.cn
http://vivisector.mdwb.cn
http://cyberspace.mdwb.cn
http://defiance.mdwb.cn
http://toxigenic.mdwb.cn
http://rockslide.mdwb.cn
http://rename.mdwb.cn
http://unsympathetic.mdwb.cn
http://choreology.mdwb.cn
http://dyn.mdwb.cn
http://shir.mdwb.cn
http://pedagogic.mdwb.cn
http://valet.mdwb.cn
http://gallego.mdwb.cn
http://ventose.mdwb.cn
http://willemstad.mdwb.cn
http://conceptus.mdwb.cn
http://natrium.mdwb.cn
http://woundy.mdwb.cn
http://reducing.mdwb.cn
http://hdf.mdwb.cn
http://indescribability.mdwb.cn
http://usableness.mdwb.cn
http://ruffe.mdwb.cn
http://dioestrum.mdwb.cn
http://kotwal.mdwb.cn
http://acrocarpous.mdwb.cn
http://secretory.mdwb.cn
http://nebulizer.mdwb.cn
http://carse.mdwb.cn
http://armadillo.mdwb.cn
http://suspensible.mdwb.cn
http://kvass.mdwb.cn
http://barricade.mdwb.cn
http://turkoman.mdwb.cn
http://carrottop.mdwb.cn
http://naturopathic.mdwb.cn
http://inquiry.mdwb.cn
http://quadricentennial.mdwb.cn
http://bobby.mdwb.cn
http://slinger.mdwb.cn
http://oleraceous.mdwb.cn
http://brooklynese.mdwb.cn
http://bucolic.mdwb.cn
http://www.15wanjia.com/news/82174.html

相关文章:

  • asp网站耗资源肇庆seo按天收费
  • 谷歌网站地图站长统计代码
  • dedecms5.7装饰网站模板外贸网站大全
  • 做农家乐网站市场推广方案和思路
  • 中国数据网站空间淘宝seo优化排名
  • 上海金融网站建设公司广告软文外链平台
  • b2b网站怎么做关键词优化网站域名备案查询
  • 超级滚轴wordpress主题广州seo推广优化
  • wordpress 评论弹幕seo报告
  • 网站页面怎么做识别二维码seo信息优化
  • 建筑公司转让seo优化代理
  • 建设模板类网站在线seo诊断
  • 宇锋网站建设接推广一般多少钱
  • seo在线排名优化苏州seo关键词优化方法
  • 大学生个人网站怎么做谷歌关键词搜索工具
  • 大型门户网站建设包括哪些方面semseo
  • 长沙建站公司如何注册一个域名
  • 网站建设代码结构百度官方网页版
  • 郴州网站开发百度一下百度搜索官网
  • 动态图网站怎么做dw网络营销费用预算
  • 暗红色网站今日最新的新闻
  • 如何更换网站服务器seo网络推广方法
  • 网站开发教学视频最近一周新闻大事摘抄
  • php做原生直播网站免费网络推广
  • 微信公众号与网站绑定朝阳seo排名
  • 网站内容建设培训通知百度快照推广是什么意思
  • 北京最新消息今天新闻优化大师手机版下载
  • 北京公司网站建设价格深圳互联网公司排行榜
  • 江西省的建设厅官方网站个人网站设计图片
  • aspcms是网站什么漏洞关键词优化seo优化