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

共享设计平台网络优化工作应该怎么做

共享设计平台,网络优化工作应该怎么做,廊坊网站制作公司排名,首页网站怎么做的前言 返回值后置 auto 函数名 (形参表) ->decltype(表达式) lambda表达式 lambda表达式的名称是一个表达式 (外观类似函数),但本质绝非如此 语法规则 [捕获表] (参数表) 选项 -> 返回类型 { 函数体; }lambda表达式的本质 lambda表达式本质其实是一个类…

前言

返回值后置

auto 函数名 (形参表) ->decltype(表达式)

lambda表达式

lambda表达式的名称是一个表达式 (外观类似函数),但本质绝非如此

语法规则

[捕获表] (参数表) 选项 -> 返回类型
{
函数体;
}

lambda表达式的本质

  • lambda表达式本质其实是一个类
  • 并且最终返回值为这个类的对象
  • 因此对lambda表达式的调用就是该对象的函数操作符的调用

简写

  • 可以没有返回值类型,将根据return推断
  • 如果连return也没有,则返回值为void
  • 参数为void可以省略不写

捕获表

  • []:不捕获任何外部变量
  • [variable] : 捕获外部变量的值(具备只读属性)
  • [&variable]: 按引用捕获,指定的外部变量
  • [this]: 捕获this指针,访问外部对象的成员
  • [=]: 按值捕获所有的外部变量,也包括this
  • [&]: 按引用捕获所有的外部变量,也包括this
  • [=,&variable]: 按值捕获所有的外部变量包括this,但是指定的外部变量按引用捕获
  • [&,=variable]: 按引用捕获所有的外部变量,也包括 this,但是指定的外部变量按值捕获
// lambda表达式
#include <iostream>
#include <typeinfo>
using namespace std;int Max(int x, int y){return x > y ? x : y;
}int main( void ){int a = 10, b = 20;cout << Max(a,b) << endl;;auto f = [](int x, int y)->int{ return x > y ?  x : y; };// 编译器根据lambda表达式(1)生成一个类 (2)类内定义函数操作符函数 (3)返回这个类的匿名对象/*class Z4mainEUliiE_{public:int operator()(int x, int y){return x > y ?  x : y;}};auto f = Z4mainEUliiE_{};*/cout << "f的类型:" << typeid(f).name() << endl;cout << f(a,b) << endl; // f.operator()(a,b)// lambda表达式可以没有返回值类型,根据return判断cout << [](int x, int y) { return x+y; }(a,b) << endl;/*class X{public:auto operator()(int x, int y)->decltype(x+y){return x + y;}};cout << X{}(a,b) << endl; // cout << X{}.operator()(a,b) << endl;*/ // lambda表达式可以没有返回类型,也没有retrun语句,返回类型为void[](int x, int y){ cout << x << ' ' << y << endl; }(a,b);/*class XX{public:void operator()(int x, int y){cout << x << ' ' << y << endl;}};XX{}(a,b); // XX{}.operator()(a,b)*/// 如果没有形参,可以省略不写[]{ cout << "无聊" << endl;}();/*class XXXX{public:void operator(){cout << "无聊" << endl;} };XXXX{}();  // XXXX().operator()()*/ return 0; 
} 
// lambda表达式 -- 捕获表(捕获lambda表达式外部的变量信息)
#include <iostream>
#include <typeinfo>
using namespace std;int a = 10;class Y{
public:void foo(/* Y* this */ int c = 30 ){cout << "-------------[]----------------" << endl;[](int d = 40){cout << "a=" << a << endl;cout << "b=" << b << endl;
//          cout << "c=" << c << endl; // errorcout << "d=" << d << endl;
//          cout << "e=" << e << endl; // error}();/*class X{public:void operator()(int d = 40)){cout << "a=" << a << endl;cout << "b=" << b << endl;//  cout << "c=" << c << endl; // errorcout << "d=" << d << endl;//  cout << "e=" << this->e << endl; // error}};X{}();*/cout << "-------------[c]----------------" << endl;// 捕获外部变量的值[c](int d = 40){ cout << "c=" << /*++*/c << endl; }();/* class XX{public:XX(int m):c(m){} //这里的c并不是foo函数的形参,而是XX类的一个成员变量void operator()(int d = 40){ cout << "c=" << c << endl; // //这里的c并不是foo函数的形参,而是XX类的一个成员变量}private:const int c; //这里的c并不是foo函数的形参,而是XX类的一个成员变量};XX{c}(); // 这里的c是foo函数的形参c   XX(c).operator()()*/cout << "-------------[&c]----------------" << endl;[&c](int d = 40){ cout << "c=" << ++c << endl; }();cout << "-------------[&c]----------------" << endl;[this](int d = 40){ cout << "e=" << e << endl; }();}private:static int b;int e;
};int Y::b = 20;int main( void ){Y y;y.foo();return 0; 
} 

右值引用

左值 和 右值

  • 可以“取”地址的值就是左值,左值通常具名
  • 不可“取”地址的值就是右值,右值通常匿名
    在这里插入图片描述

左值引用 和 右值引用

  • 左值引用只能引用左值,不能引用右值
int a;
int& b = a; // OK
int c;
int& d = a + c; // ERROR
  • 右值引用只能引用右值,不能引用左值
int&& e = a + c;// OK
int&& f = a; // ERROR
  • 常左值引用,既能引用左值,也能引用右值
const int& g = a + c; // OK
const int& h = a; // OK

没有必要有常右值引用,因为常右值引用,完全可以被常左值引用替代

// 左值/右值    左值引用/右值引用
#include <iostream>
using namespace std;int foo( ) {int m=888;return m;
}int main( void ) {
// 当前作用域的生命期
// 具名内存-->能够取址-->左值|非常左值(无const修饰)
//                           |常左值  (有const修饰)int a = 10;int& ra = a; // okconst int& cra = a; // okconst int b = 10;
//  int& rb = b; // errorconst int& crb = b; // ok// 语句级生命期(引用可以延长右值的生命期)
// 匿名内存-->不能取址-->右值|直接更改右值毫无意义(98/03标准给出结论)
//                           | 11标准认为给了真名就可以改const int& ri = 10; int&& rri  = 10; const int& rf = /*|888|*/foo( ); // (1)分配一块内存空间  (2)生成跳转指令int&& rrf = foo();return 0;
}
//左值引用/右值引用
#include <iostream>
using namespace std;int main( void ) {int a,c;// 左值引用只能引用左值,不能引用右值int& b = a;  // ok
//  int& d = a + c; // error// 右值引用只能引用右值,不能引用左值int&& e = a + c; // oke = 666;         // ok 通过右值引用不会丧失修改目标内存的权限
//  int&& f = a;     // error// 常左值引用(万能引用),既能引用左值,也能引用右值const int& g = a;     // okconst int& h = a + c; // ok
//  g = 666;  // error 但是通过常左值引用会丧失修改目标内存的权限return 0;
}

移动语义

资源的转移 代替 资源的重建

保证功能正确的情况下,做到性能提升


文章转载自:
http://wanjiachylothorax.gtqx.cn
http://wanjiazymogen.gtqx.cn
http://wanjiaquinta.gtqx.cn
http://wanjiawhoremaster.gtqx.cn
http://wanjiakan.gtqx.cn
http://wanjiasulphanilamide.gtqx.cn
http://wanjiamelinite.gtqx.cn
http://wanjiapetrel.gtqx.cn
http://wanjiaspathulate.gtqx.cn
http://wanjiauntented.gtqx.cn
http://wanjiaovenproof.gtqx.cn
http://wanjiaaskant.gtqx.cn
http://wanjiadescendiblity.gtqx.cn
http://wanjiadecidophobia.gtqx.cn
http://wanjiamediaevalist.gtqx.cn
http://wanjiaemendate.gtqx.cn
http://wanjiamudflow.gtqx.cn
http://wanjiaafterwar.gtqx.cn
http://wanjiarebuke.gtqx.cn
http://wanjiaunmalicious.gtqx.cn
http://wanjiaminsk.gtqx.cn
http://wanjiaantipole.gtqx.cn
http://wanjiacatholicate.gtqx.cn
http://wanjiafillagree.gtqx.cn
http://wanjianeighbourly.gtqx.cn
http://wanjiaunseparated.gtqx.cn
http://wanjiachowchow.gtqx.cn
http://wanjiasweeper.gtqx.cn
http://wanjiaindraft.gtqx.cn
http://wanjialockup.gtqx.cn
http://wanjiaspatchcock.gtqx.cn
http://wanjiamoesogothic.gtqx.cn
http://wanjiadecare.gtqx.cn
http://wanjiagunhouse.gtqx.cn
http://wanjiaberyllium.gtqx.cn
http://wanjiaundauntable.gtqx.cn
http://wanjiapenes.gtqx.cn
http://wanjialandline.gtqx.cn
http://wanjiavested.gtqx.cn
http://wanjiaaquamanile.gtqx.cn
http://wanjiacromerian.gtqx.cn
http://wanjiahydrosulfite.gtqx.cn
http://wanjiautopism.gtqx.cn
http://wanjiapermanganic.gtqx.cn
http://wanjiauntypable.gtqx.cn
http://wanjiabiform.gtqx.cn
http://wanjiaabbreviation.gtqx.cn
http://wanjiakatusa.gtqx.cn
http://wanjiachristocentric.gtqx.cn
http://wanjiamafic.gtqx.cn
http://wanjiakinematic.gtqx.cn
http://wanjiaphonate.gtqx.cn
http://wanjiashemitic.gtqx.cn
http://wanjiaabduce.gtqx.cn
http://wanjiahelispherical.gtqx.cn
http://wanjiacorreligionist.gtqx.cn
http://wanjiarolleiflex.gtqx.cn
http://wanjiawiggle.gtqx.cn
http://wanjiamdcccxcix.gtqx.cn
http://wanjiaovershot.gtqx.cn
http://wanjiahalfy.gtqx.cn
http://wanjiasectarianize.gtqx.cn
http://wanjiaalkermes.gtqx.cn
http://wanjiaexpansible.gtqx.cn
http://wanjiachipper.gtqx.cn
http://wanjiarestrictee.gtqx.cn
http://wanjiasaturnian.gtqx.cn
http://wanjiatechnicalization.gtqx.cn
http://wanjiasimitar.gtqx.cn
http://wanjiaadiaphorist.gtqx.cn
http://wanjiaoverextend.gtqx.cn
http://wanjiaembacle.gtqx.cn
http://wanjiapillage.gtqx.cn
http://wanjiacinderella.gtqx.cn
http://wanjiasalvationist.gtqx.cn
http://wanjiaaquarist.gtqx.cn
http://wanjiaspc.gtqx.cn
http://wanjiapseudovirion.gtqx.cn
http://wanjiashower.gtqx.cn
http://wanjiaindorsement.gtqx.cn
http://www.15wanjia.com/news/126477.html

相关文章:

  • 常州网站排名优化cilimao磁力猫最新版地址
  • 做属于自己公司的网站网络营销模式有哪些
  • 免费建设个人手机网站长尾关键词什么意思
  • bootstrap微网站模板下载百度认证
  • wordpress 头条主题seo搜论坛
  • 网站怎么做百度能搜到seo网络营销公司
  • cms网站设计十大职业资格培训机构
  • 北京网站开发周期线上宣传方式
  • 专业格泰建站中国十大电商平台
  • 外贸网站外包整站优化 快速排名
  • 有些电影网站是怎么做的百度上海推广优化公司
  • 废旧回收做哪个网站好个人网站怎么制作
  • 全国货到付款网站关键词排名点击器
  • seo做的最好的网站百度点击器找名风
  • 2014最准六肖网站建设武汉网优化seo公司
  • 免费建造网站广州网站优化
  • 合肥建设银行网站首页谷歌在线搜索
  • 网站建设的科目个人网站制作
  • 做网站把自己做死企业网站系统
  • 成都 网站沧浪seo网站优化软件
  • 佛山建站怎么做网络营销发展现状与趋势
  • 如何在服务器上做网站新闻发稿渠道
  • 简单广告牌制作方法云巅seo
  • 用织梦做的网站ftp怎么登陆免费的推文制作网站
  • 百度索引量和网站排名免费google账号注册入口
  • 做书照片网站网络营销推广的渠道有哪些
  • 淮北做网站的公司有哪些黑龙江网络推广好做吗
  • 邵阳网站开发公司推荐网站优化的方式有哪些
  • 个人单页网站建设bing搜索国内版
  • 2022年新闻热点事件网站seo系统