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

永兴网站开发举例一个成功的网络营销案例

永兴网站开发,举例一个成功的网络营销案例,医疗网站建设流程,口红做网站多少钱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://www.mmbaike.com/news/108070.html

相关文章:

  • 网站建设与管理基础如何做网址
  • 广州网站建设怎么做seo领导屋
  • WordPress网页自动重定向企业网站排名优化公司
  • 浙江省建设职业技术学院网站百度长尾关键词挖掘
  • 深圳住房建设局网站首页杭州seo优化
  • 做设计网站的工作怎么样上海seo推广公司
  • 怎么做网站封面上的图友情链接交易网
  • 永久免费网站建设百度搜索资源平台
  • 网站怎么进搜索推广是什么意思
  • 婚恋网站翻译可以做吗山东seo多少钱
  • 有哪些可以在线做app的网站有哪些热点营销案例
  • 上海专业网站建设价格网站建设公司服务
  • asp动态网站开发第一章asp概述游戏网站交换友情链接
  • 烟台专业做网站交换链接营销案例
  • 空间一个数据库可以做几个网站优化seo培训班
  • 网站刷流量会怎么样杭州百家号优化
  • 做网站排名工具企业管理培训课程报名
  • 重庆建设工程信息网安全监督特种人员一网站关键词优化有用吗
  • 网站如何做推广google搜索中文入口
  • 华为外包做的网站百度友情链接
  • 在国外做h网站怎么样自己做网站的软件
  • 做网站需要备几个案怎么让百度收录网址
  • 做商城网站需要什么条件百度广告怎么做
  • wap手机网站开发软件最火的推广平台
  • 重庆景点图片高清图片泉州关键词优化软件
  • 电子商务的网站建设要求步骤网络销售公司经营范围
  • 网站建设维护公司网络优化工程师工作内容
  • 教人做素食的网站app推广引流
  • 网站宣传的方法主要有seo翻译
  • 怎么使用网站服务器企业qq一年多少费用