C++11-大括号的使用

1、前言

最开始是看到别人的代码,在声明拉姆达函数的时候,将函数体用大括号包裹,返回值作为auto接收,觉得新奇【其实我内心是痛恨这种方式的,让没见过这种写法的人会恍惚一下,真就为了装逼,真就你厉害呗,咱用了多少年的等号,现在又得花时间去学习你的牛逼之处呗】

在C++11中这种方式被称为初始化列表【构造函数里也有个初始化列表。。】【initializer list】,使用这种方式需要使用头文件中initialize_list类模板的支持。也就是说如果是自定义类,想要实现这汇总功能就要去使用initialize_list,具体怎么用就不去研究了,没啥意义,还增加代码,还让使用时的代码晦涩难懂。

2、初始化数组1

int a[] = { 1, 2, 3 };//C++98支持,C++11支持

3、初始化数组2,不使用等号

int b[]{2, 3, 4};    //C++98不支持,C++11支持

4、初始化容器

vector<int> c{ 1, 2, 3 };//C++98不支持,C++11支持

5、初始化二维容器

map<int, float> d = {{ 1, 1.0f }, { 2, 2.0f }, { 3, 3.0f } };//C++98不支持,C++11支持

6、重点来了:初始化拉姆达函数

auto cb {
    [](){
        std::cout<< "timer out..."<<std::endl;
    }
};

原文链接: https://www.cnblogs.com/judes/p/15638341.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/215407

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午2:47
下一篇 2023年2月13日 上午2:47

相关推荐