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

php网站模板免费下载如何细分行业 做网站赚钱

php网站模板免费下载,如何细分行业 做网站赚钱,网站推广策划思路是什么,网站建设会计分录怎么做目录 1--右值引用 2--std::move 3--移动构造函数 4--移动赋值运算符 5--移动迭代器 6--引用限定符 1--右值引用 右值引用必须绑定到右值的引用,通过 && 获得右值引用; 右值引用只能绑定到临时对象(即将被销毁的对象&#xff09…

目录

1--右值引用

2--std::move

3--移动构造函数

4--移动赋值运算符

5--移动迭代器

6--引用限定符


1--右值引用

        右值引用必须绑定到右值的引用,通过 && 获得右值引用;

        右值引用只能绑定到临时对象(即将被销毁的对象),即所引用的对象将要被销毁,对象没有其他用户;

        返回非引用类型的函数,连同算术、关系、位已经后置递增/递减运算符,都生成右值;

int i = 42;
int &r1 = i; // 左值引用,i是一个变量,是左值
int &&r2 = i * 42; // 右值引用,i*42是一个临时对象,是右值 

2--std::move

        std::move 用于获得绑定到左值上的右值引用,其定义在头文件 utility 中;

int &&r1 = 42; // 右值引用,但r1是一个左值
int &&r2 = std::move(r1); // 调用std::move,调用后只能对r1进行赋值或销毁,不能再使用

3--移动构造函数

        移动构造函数的第一个参数是该类类型的一个右值引用

        移动构造函数必须确保移动后,销毁源对象是无害的;

        移动构造函数不分配任何新内存,只是接管给定的内存;

A::A(A &&s) noexcept : data1(s.data1), data2(s.data2), data3(s.data3){s.data1 = s.data2 = s.data3 = nullptr;
}
// 假定data1,data2 和 data3 均是指针
// noexcept 的作用是通过标准库对于上述构造函数不抛出任何异常
// 在移动构造函数的函数体中,对源对象的指针数据进行赋值,可以避免由于源对象析构导致释放刚刚移动的内存的问题

4--移动赋值运算符

A &A::operator=(A &&sample) noexcept{if(this != &sample){data1 = sample.data1;data2 = sample.data2;data3 = sample.data3;sample.data1 = sample.data2 = sample.data3 = nullptr;}return *this;
}

5--移动迭代器

        移动迭代器的解引用运算符生成一个右值引用,通过调用标准库的 make_move_iterator 函数可以将一个普通迭代器转换为一个移动迭代器;

        移动一个对象可能会销毁原对象,当确信一个算法为一个元素赋值或传递给函数后不会再访问原对象,才能使用移动迭代器将对象传递给算法;

#include <iostream>     
#include <iterator>          
#include <string>       
#include <vector>int main (int argc, char *argv[]){std::vector<std::string> foo (3);std::vector<std::string> bar {"A", "B", "C"};typedef std::vector<std::string>::iterator Iter;std::copy ( std::move_iterator<Iter>(bar.begin()), // 使用移动迭代器std::move_iterator<Iter>(bar.end()),foo.begin() );bar.clear(); // 移动 bar 后,清理std::cout << "foo:";for (std::string& x : foo) std::cout << ' ' << x;std::cout << std::endl;;return 0;
}

6--引用限定符

        右值没有内存实体,一般不能对其进行调用成员函数或赋值,但有时会出现以下情况:即右值调用成员函数或对右值进行赋值;

string s1 = "abc", s2 = "def";
auto n = (s1 + s2).find('a'); //(s1 + s2)是一个右值,对右值调用成员函数
s1 + s2 = "wc"; //(s1+s2)是一个右值,对右值赋值

        上述代码其实是没意义的,但 C++11 仍然保留了这种右值赋值或调用成员函数的机制;通过使用引用限定符可以显式阻止函数被左值或右值调用:

class demo{int get_num();   // 默认情况下,成员函数既可以被左值或右值对象调用int get_num()& ;  // &显式限制成员函数必须被左值成员对象调用int get_num()&& ;  //&&显式限制成员函数必须被右值成员对象调用
}class A{A& operator=(const A&);A& operator=(const A&) &;A& operator=(const A&) &&;
}

http://www.yayakq.cn/news/204502/

相关文章:

  • 网站建设目的及功能定位开发公司各部门岗位职责
  • 三亚旅游网网站seo优缺点
  • 响应式装饰设计公司网站源码做搜狗网站优化首页
  • 创建吃的网站怎么做福建省住房和城乡建设厅网站
  • 骄阳房地产网站免费的产品推广平台
  • 国外教做蛋糕的网站云南做网站多少钱
  • 网站的内容策略wordpress屏蔽蜘蛛爬虫
  • 网站模板及素材app设计公司
  • 深圳网站制作公司讯息搜狗提交入口网址
  • 想给学校社团做网站廊坊建设局网站6
  • 去类似美团网站做软件开发怎么看一个网站的cms
  • 高端网站建设公司推荐四川建设厅官网查询
  • 网站建设解决恩问题张雪峰最不建议上的专业
  • ai智能写作网站湖南网站建设公司 地址磐石网络
  • 广州外包公司都有哪些seo快速排名优化
  • 四川省建设勘察设计网站24小时有效地址域名
  • 电话做网站的推广长沙室内设计
  • 自助网站建设哪里可以做网站膜网站怎么做
  • 做微信问卷调查的网站专业营销网站费用
  • 怎么自己做论坛网站常德网站建设常德
  • 怎么样关闭网站上海外贸业务员招聘
  • 山西孝义网站开发网站设计评分标准
  • 网站建设公司包括哪些方面怎么创建一个公司网站
  • 网站建设赚钱么郑州手机网站建设价格明细表
  • 奇信建设集团官方网站网站优化搜索排名
  • 如何用图片做网站背景图片wordpress博客
  • 北京定制网站价格建筑网建筑规范大全
  • 黄冈网站推广优化找哪家鄂尔多斯网站制作 建设
  • 做外贸最适合的网站系统三亚市城乡建设局网站
  • 石家庄网站制作官网做公司企业网站标准尺寸