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

怎样建立一个自己的网站免费网站建设公司品牌

怎样建立一个自己的网站免费,网站建设公司品牌,湖南省郴州市邮编,网站开发需求范本本节介绍c的移动语义与新特性std::move#xff0c;本节介绍的内容主要用在性能优化上。 c移动语义和c左值右值的内容相关联#xff0c;可以先看之前发的左值右值内容。 不使用移动语义的代码如下#xff1a; #include iostream class String { public:String() …本节介绍c的移动语义与新特性std::move本节介绍的内容主要用在性能优化上。 c移动语义和c左值右值的内容相关联可以先看之前发的左值右值内容。 不使用移动语义的代码如下 #include iostream class String { public:String() default;String(const char* date){std::cout Created!\n;m_Data new char[strlen(date)1];m_Size strlen(date);memcpy(m_Data, date, m_Size1);}String(const String other){std::cout Copityed!\n;m_Data new char[other.m_Size 1]; //需要在堆上分配所以会影响性能移动语义可以不在堆上进行分配m_Size other.m_Size;memcpy(m_Data, other.m_Data, m_Size 1);}~String(){delete[] m_Data;}void PrintString(){for (int i 0; i m_Size; i){std::cout m_Data[i];}std::cout \n;} private:char* m_Data;uint32_t m_Size; }; class Entity { public:Entity(const String name):m_Name(name){}void Print(){m_Name.PrintString();} private:String m_Name; };int main() {Entity entity(String(pcop));entity.Print();std::cin.get(); } 上述代码执行结果如下 Created! Copityed! pcop 可以看到执行了两次内存分配一次是在Created中一次是在Copityed中因为String(pcop)先创建了一个String对象然后通过引用的方式传递给EntityEntity调用复制构造函数在复制构造函数中新建一个String对象m_Data。 使用移动语义可以减去String(pcop)创建String对象这一次内存分配代码如下 #include iostream class String { public:String() default;String(const char* date){std::cout Created!\n;m_Data new char[strlen(date)1];m_Size strlen(date);memcpy(m_Data, date, m_Size1);}String(const String other){std::cout Copityed!\n;m_Data new char[other.m_Size 1]; //需要在堆上分配所以会影响性能移动语义可以不在堆上进行分配m_Size other.m_Size;memcpy(m_Data, other.m_Data, m_Size 1);}String(String other) noexcept //传递的是一个右值临时值{std::cout Moved!\n;m_Data other.m_Data; //实际进行了一次浅拷贝m_Data指针指向other.m_Data所指的内存地址m_Size other.m_Size;other.m_Size 0;other.m_Data nullptr;}~String(){std::cout Destroyed!\n;delete[] m_Data;}void PrintString(){for (int i 0; i m_Size; i){std::cout m_Data[i];}std::cout \n;} private:char* m_Data;uint32_t m_Size; }; class Entity { public:Entity(const String name):m_Name(name){}Entity(String name):m_Name((String)name) {}void Print(){m_Name.PrintString();} private:String m_Name; };int main() {Entity entity(String(pcop));entity.Print();std::cin.get(); } std::move的使用方式及移动赋值运算符代码如下 #include iostream class String { public:String() default;String(const char* date){std::cout Created!\n;m_Data new char[strlen(date)1];m_Size strlen(date);memcpy(m_Data, date, m_Size1);}String(const String other){std::cout Copityed!\n;m_Data new char[other.m_Size 1]; //需要在堆上分配所以会影响性能移动语义可以不在堆上进行分配m_Size other.m_Size;memcpy(m_Data, other.m_Data, m_Size 1);}String(String other) noexcept //传递的是一个右值临时值{std::cout Moved!\n;m_Data other.m_Data; //实际进行了一次浅拷贝m_Data指针指向other.m_Data所指的内存地址m_Size other.m_Size;other.m_Size 0;other.m_Data nullptr;}String operator(String other) noexcept{std::cout Moved!\n;if (this ! other){delete[] m_Data;m_Data other.m_Data; //实际进行了一次浅拷贝m_Data指针指向other.m_Data所指的内存地址m_Size other.m_Size;other.m_Size 0;other.m_Data nullptr;}return *this;}~String(){std::cout Destroyed!\n;delete[] m_Data;}void PrintString(){for (int i 0; i m_Size; i){std::cout m_Data[i];}std::cout \n;} private:char* m_Data;uint32_t m_Size; }; class Entity { public:Entity(const String name):m_Name(name){}Entity(String name):m_Name(std::move(name)) {}void Print(){m_Name.PrintString();} private:String m_Name; };int main() {//Entity entity(String(pcop));//entity.Print();String s1 pcop;//String s2 std::move(s1); //使用move将s1转换成临时变量此时调用的是构造函数而不是移动赋值运算符String s3;s3 std::move(s1); //此时调用的是移动赋值运算符s3.PrintString();std::cin.get(); }
http://www.pierceye.com/news/40711/

相关文章:

  • 做网站ps笔记本电脑合作网站建设
  • 网站建设违法行为网站建设教程流程
  • 网站怎样优化关键词好设计方案英文
  • wordpress微信收款站长工具seo推广
  • 怎么进电力建设公司网站wordpress管理后台添加导航栏
  • 植物园门户网站建设方案网站点击赚钱怎么做
  • 黄金网站大全免费2023济南微信网站开发
  • 网站规划与网页设计案例ui设计师零基础学什么
  • 安徽建设厅网站怎么打不开新浪云建设自己的网站
  • 做第一个网站什么类型网页代码怎么打开
  • 北京企业网站排名优化小程序权限超时
  • 宁夏建设工程造价网站河南seo推广平台
  • 论坛备案网站名称自助定制网站开发公司
  • 金牛区网站建设做网站公司赚不赚钱
  • 文化厅网站建设审核报告单安陆市城乡建设局网站
  • 专业做装修设计的网站为什么一个人做网站有难度
  • 技术支持 东莞网站建设机械加工如何利用网络平台挣钱
  • 杭州建设网站免费深圳做网站有哪些
  • 个人网站制作方法重庆喷绘制作
  • 无锡做网站、潍坊外贸网站建设
  • 徐州市丰县建设局网站轻设计 让网站灵敏轻便的6个技巧
  • 网站名称是什么阿里巴巴网站开发信在哪
  • it网站开发网站建设会考什么
  • 酒店用品网站源码华佣网做最好的现货沥青返佣网站
  • 电子商务网站建设薛万欣住房和城乡建设部网站安全月
  • 网站台做计么呢微信触屏版网站开发
  • 那些网站是做生鲜的上海免费模板建站
  • 棋牌游戏网站怎么做的网络营销策划方案3000字
  • 微网站建设完不知道怎么推广咋办东莞高端网站建设多少钱
  • 宁波网站建设大概要多少钱购买的域名是永久的吗