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

什么是网站功能wordpress 在线skype

什么是网站功能,wordpress 在线skype,app生成链接,陕西交通建设集团网站体检C11 中值得关注的几大变化 1.Lambda 表达式 Lambda表达式来源于函数式编程#xff0c;说白就了就是在使用的地方定义函数#xff0c;有的语言叫“闭包”#xff0c;如果 lambda 函数没有传回值(例如 void )#xff0c;其回返类型可被完全忽略。 定义在与 lambda 函数相同作…C11 中值得关注的几大变化     1.Lambda 表达式 Lambda表达式来源于函数式编程说白就了就是在使用的地方定义函数有的语言叫“闭包”如果 lambda 函数没有传回值(例如 void )其回返类型可被完全忽略。 定义在与 lambda 函数相同作用域的变量参考也可以被使用。这种的变量集合一般被称作 closure闭包。表达式的简单语法如下   char s[]Hello World!; int Uppercase 0; //modified by the lambda for_each(s, ssizeof(s), [Uppercase] (char c) { if (isupper(c)) Uppercase; }); cout Uppercase uppercase letters in: s endl; View Code 在传统的STL中for_each() 这个玩意最后那个参数需要一个“函数对象”所谓函数对象其实是一个class这个class重载了operator()于是这个对象可以像函数的式样的使用。实现一个函数对象并不容易需要使用template比如下面这个例子就是函数对象的简单例子实际的实现远比这个复杂   template class T class less { public: bool operator()(const Tl, const Tr)const { return l r; } }; View Code   所以C引入Lambda的最主要原因就是1可以定义匿名函数2编译器会把其转成函数对象。相信你会和我一样会疑问为什么以前STL中的ptr_fun()这个函数对象不能用ptr_fun()就是把一个自然函数转成函数对象的。原因是ptr_fun() 的局限是其接收的自然函数只能有1或2个参数。 那么除了方便外为什么一定要使用Lambda呢它比传统的函数或是函数对象有什么好处呢我个人所理解的是这种函数之年以叫“闭包”就是因为其限制了别人的访问更私有。也可以认为他是一次性的方法。Lambda表达式应该是简洁的极私有的为了更易的代码和更方便的编程。   2.自动类型推导 auto 在在这一节中原文主要介绍了两个关键字 auto 和 deltype示例如下   auto x0; //x has type int because 0 is int auto ca; //char auto d0.5; //double auto national_debt14400000000000LL;//long long auto 最大的好处就是让代码简洁尤其是那些模板类的声明比如STL中的容器的迭代子类型。 vectorint::const_iterator ci vi.begin(); 可以变成 auto ci vi.begin(); 模板这个特性让C的代码变得很难读不信你可以看看STL的源码那是一个乱啊。使用auto必需一个初始化值编译器可以通过这个初始化值推导出类型。因为auto是来简化模板类引入的代码难读的问题如上面的示例iteration这种类型就最适合用auto的但是我们不应该把其滥用。 比如下面的代码的可读性就降低了。因为我不知道ProcessData返回什么int? bool? 还是对象或是别的什么这让你后面的程序不知道怎么做。   auto obj ProcessData(someVariables); 但是下面的程序就没有问题因为pObject的型别在后面的new中有了。   auto pObject new SomeTypeOtherType::SomeOtherType();     3.自动化推导 decltype   关于 decltype 是一个操作符其可以评估括号内表达式的类型其规则如下 如果表达式e是一个变量那么就是这个变量的类型。如果表达式e是一个函数那么就是这个函数返回值的类型。如果不符合1和2如果e是左值类型为T那么decltype(e)是T如果是右值则是T。原文给出的示例如下我们可以看到这个让的确我们的定义变量省了很多事。 1 2 3 const vectorint vi; typedef decltype (vi.begin()) CIT; CIT another_const_iterator; 还有一个适合的用法是用来typedef函数指针也会省很多事。比如   decltype(myfunc) pfunc 0;    typedef decltype(A::func1) type; 4.auto 和 decltype 的差别和关系 Wikipedia 上是这么说的关于decltype的规则见上 #include vector    int main() {     const std::vectorint v(1);     auto a v[0];        // a 的类型是 int     decltype(v[0]) b 1; // b 的类型是 const int, 因为函数的返回类型是                           // std::vectorint::operator[](size_type) const     auto c 0;           // c 的类型是 int     auto d c;           // d 的类型是 int     decltype(c) e;        // e 的类型是 int, 因为 c 的类型是int     decltype((c)) f c;  // f 的类型是 int, 因为 (c) 是左值     decltype(0) g;        // g 的类型是 int, 因为 0 是右值 } 如果auto 和 decltype 在一起使用会是什么样子能看下面的示例下面这个示例也是引入decltype的一个原因——让C有能力写一个 “ forwarding function 模板” template typename LHS, typename RHS   auto AddingFunc(const LHS lhs, const RHS rhs) - decltype(lhsrhs) {return lhs rhs;} 这个函数模板看起来相当费解其用到了auto 和 decltype 来扩展了已有的模板技术的不足。怎么个不足呢在上例中我不知道AddingFunc会接收什么样类型的对象这两个对象的 操作符返回的类型也不知道老的模板函数无法定义AddingFunc返回值和这两个对象相加后的返回值匹配所以你可以使用上述的这种定义。 5.统一的初始化语法     C/C的初始化的方法比较C 11 用大括号统一了这些初始化的方法。   比如POD的类型。   1 2 int arr[4]{0,1,2,3}; struct tm today{0};   关于POD相说两句所谓POD就是Plain Old Data当class/struct是极简的(trivial)、属于标准布局(standard-layout)以及他的所有非静态non-static成员都是POD时会被视为POD。如   1 2 3 struct A { int m; }; // POD struct B { ~B(); int m; }; // non-POD, compiler generated default ctor struct C { C() : m() {}; ~C(); int m; }; // non-POD, default-initialising m   POD的初始化有点怪比如上例new A; 和new A(); 是不一样的对于其内部的m前者没有被初始化后者被初始化了不同 的编译器行为不一样VC和GCC不一样。而非POD的初始化则都会被初始化。   从这点可以看出C/C的初始化问题很奇怪所以在C 2011版中就做了统一。原文作者给出了如下的示例   1 2 3 4 5 6 7 8 9 C c {0,0}; //C11 only. 相当于: C c(0,0);    int* a new int[3] { 1, 2, 0 }; /C11 only    class X {     int a[4];     public:         X() : a{1,2,3,4} {} //C11, member array initializer };   容器的初始化   1 2 3 4 5 // C11 container initializer vectorstring vs{ first, second, third}; map singers { {Lady Gaga, 1 (212) 555-7890}, {Beyonce Knowles, 1 (212) 555-0987}};   还支持像Java一样的成员初始化   1 2 3 4 5 6 class C {    int a7; //C11 only  public:    C(); };  转载于:https://www.cnblogs.com/lightz/p/3417006.html
http://www.yutouwan.com/news/308366/

相关文章:

  • 网站与服务器的关系辽宁工程建筑信息网
  • 网站开发课程百度云全球前10网站开发语言
  • 官网网站设计费用网站开发亿玛酷1专注
  • 浦东网站开发培训网店代运营犯法吗
  • 单页面网站怎么做seowordpress 搬家 换域名
  • 网站开发课程设计建议建设银行网站登陆不上
  • 网站建设工程师面试飞行时代网站建设
  • 安徽网站建设公司新民正规网站建设价格咨询
  • 西安建筑信息平台培训机构优化
  • 安泽网站建设秦皇岛英文网站建设
  • 网站建设服务代理商黄冈网页设计
  • 佛山网站制作好处长尾关键词爱站
  • 辽阳做网站的公司西宁网站制作哪里好
  • 个人网站建设基本教程专业的google推广公司
  • 江门市网站建设深圳模板网站建设案例
  • 濮阳做公司网站宁波网站建设工作室
  • 如皋建设局网站域名防红跳转网址生成
  • 哪家公司做网站不错唐山APP小程序网站开发
  • 网站商城建设套餐长春网站制作长春万网
  • 做抛物线的网站嘉兴网站建设定制网站
  • 娄底网站建设wyo8网页美工设计师工资
  • 定制网站开发哪家好网站建设的流程与思路
  • 广告项目网站开发做网站购买空间多少钱
  • 光华路网站建设成都网站专业制作
  • 简单建站的网站计算机平面设计是干什么的
  • 英文网站建设60企业网站 静态页面
  • 美度手表网站郑州高考网站建设
  • 网站建站思路北京建公司网站价格
  • 泉州网站建设网站安卓手机app制作公司
  • 对于网站开发有什么要求做网站的如何说服客户