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

湛江做网站需要什么ui设计主要包括什么

湛江做网站需要什么,ui设计主要包括什么,重庆快速网站备案,辽宁建设工程信息网中标公示几天以前也看过一些 std::move 的介绍文章,总结下来一句话:std::move 没有任何代价。这个总结实在是坑人。 今天突然悟了,实际应用中悟的。如果写一个相关的教程,完全不应该从 std::move 入手,而是应该从如何降低对象拷贝…

以前也看过一些 std::move 的介绍文章,总结下来一句话:std::move 没有任何代价。这个总结实在是坑人。

今天突然悟了,实际应用中悟的。如果写一个相关的教程,完全不应该从 std::move 入手,而是应该从如何降低对象拷贝代价入手。

struct A {int m_a;int m_b;
};

如果要对 A 做拷贝,可以写成下面这样。对于这种情况,就算用了 std::move,也没有什么用。

A a1;
g_a2 = a1; // g_a2 是一个类成员

但是,对于下面这个结构,就不一样了:

struct A {int m_a;int m_b;char *m_s;
};

此时,下面的逻辑取决于 A 的拷贝构造函数实现,一般来说,会把 m_a, m_b, 直接赋值,m_s 则会做一个深拷贝。

A a1;
g_a2 = a1; // g_a2 是一个类成员

有些时候,我们不希望做深拷贝。浅拷贝行不行?一般来说是不行的。因为浅拷贝后 g_a2.m_sa1.m_s 会指向同一片内存区域,并且 a1 是栈变量,它析构后会释放 m_s 指向的内存,那么 g_a2 就会得到一个野指针。

怎么办呢?C++ 发明了一种“移动”语义,让 A 实现下面这样一个移动拷贝函数:

struct A {// 默认构造A() : m_a(0), m_b(0.0), m_s(nullptr) {}// 带参数构造A(int a, int b, const std::string& s) : m_a(a), m_b(b), m_s(new std::string(s)) {}~A() { delete m_s; } // 释放内存// 移动构造A(A&& other) {m_a = other.m_a;m_b = other.m_b;m_s = other.m_s;other.m_s = nullptr; // 关键之处,强行删掉 other.m_s 的指针,实现了内存的“移动”}// 移动赋值A& operator=(A&& other) {if (this != &other) { // 防止自赋值m_a = other.m_a;m_b = other.m_b;m_s = other.m_s;other.m_s = nullptr; // 关键之处,强行删掉 other.m_s 的指针,实现了内存的“移动”}return *this;}};

A 还可以这样定义这个函数:

struct A {void set(A&& other) {m_a = other.m_a;m_b = other.m_b;m_s = other.m_s;other.m_s = nullptr;}
};A a1;
g_a2.set(std::move(a1)); // g_a2 是一个类成员

所以,std::move 的确什么事情都不做,它只是提示编译器,去调用支持 move 语义的函数而已,具体做事情的,是这些函数。

Note:STL 中,vector 的 emplace_back、push_back 等也实现了支持 move 语义等版本。

http://www.dtcms.com/wzjs/617821.html

相关文章:

  • 南宁正规公众号网站建设推广搜索引擎优化的方式有哪些
  • 国内做家具外贸的网站乌海网站建设公司
  • 个人博客网站开发的背景潍坊专业技术人员服务平台
  • 最便宜的低价机票网站建设安居客官网入口
  • 网站登录页面盗号怎么做南通做网站的公司
  • 做公司网站需不需要注册竞价推广开户多少钱
  • wordpress程序做mip步骤关键词优化是什么意思
  • 网站外包价格 北京网站制作公司seo公司哪里有
  • 做h5的网站的区别网站建设公司长沙
  • wap网站程序网站设计的流程简答题
  • 门户网站用什么程序做网站建设一般用到的语言
  • thinkphp做的网站源码相册制作app
  • 做网站教程pdfwordpress破解主题下载
  • 做企业网站福建网站优化
  • 青岛知名网站建设哪家好域名历史解析查询
  • 郑州建设网站企业定制张家口网站建设制作
  • 临沂手机网站制作x cache wordpress
  • 设计师 英文网站俄语好网站设计
  • 山东中佛龙建设有限公司网站郑州市 网站建设
  • 个人网站建站指南济南建设工程交易信息网
  • 兰州 网站建设公司上海网站开发开发好的公司电话
  • 做电影网站看电影算网站流量吗wordpress搬家问题
  • html网站开发心得wordpress调用微云视频
  • 做电商有哪些网站有哪些网络平台推广运营公司
  • 网站首页设计多少钱seo网站关键词优化报价
  • 网站psd 模板网站制作的设备环境
  • 网站访问量数据电子商务平台的建设步骤
  • 关于网站建设知识网站如何做301跳转
  • 非洲用什么网站做采购塑料机械怎么做网站
  • 电子商务网站前台建设凡科做的网站行不行