c++11::initializer_list
2024-09-01 10:38:25
#include <initializer_list>
template <class T> class initializer_list;
initializer_list对象中的元素永远是常量值const T,不能initializer_list对象中元素的值修改
、可以使用初始化列表语法, 将stl容器初始化一系列值,容器类将initializer_list<T> 作为构造函数。
initializer_list类型元素必须相同,编译器将进行必要转换。
std::vector<double> Array{1.12, 4.35, 5.756, , };
std::vector<double> Array{1.12, 4.35, 5.756, 10.0, 20.0};
、c++11新增通用的初始化语法,可以使用{}而不是()来调用类构造函数。
int units_sold=;
int units_sold();
int units_sold={};
int units_sold{};
shared_ptr<double> pd {new double}
、initializer_list类型来实现构造函数,在新建对象时,就可以使用列表初始化的方式了。
class FooVector
{
std::vector<int> content_; public:
FooVector(std::initializer_list<int> list)
{
for (auto it = list.begin(); it != list.end(); ++it)
{
content_.push_back(*it);
}
}
}; class FooMap
{
std::map<int, int> content_;
using pair_t = std::map<int, int>::value_type; public:
FooMap(std::initializer_list<pair_t> list)
{
for (auto it = list.begin(); it != list.end(); ++it)
{
content_.insert(*it);
}
}
}; int main(void)
{
FooVector foo1 = { , , , , };
FooMap foo2 = { { , }, { , }, { , } };
return ;
}
最新文章
- jquery移除属性值
- Linux安装JDK1.7
- Cocos2d-x 3.X 事件分发机制
- Mysql修改字段长度
- phonegap 基础原理
- 基础学习day12--多线程一线程之间的通信和常用方法
- InitializeComponent System.StackOverflowException
- A Tour of Go Advanced Exercise: Complex cube roots
- android中设置快捷键方法setShortcut参数的说明
- TCP在三次握手协议和四波(图)
- url 地址处理(截取,参数等)
- Python——cmd调用(os.system阻塞处理)
- C#软件监控外部程序运行状态
- iview table 实现在数据中自定义标识
- Constructor >;>; @Autowired >;>; @PostConstruct
- OC 与 js 界面JSBridge交互
- python的运行机制和版本区别
- 深圳MPD大会,五大专题一会尽享
- struts2从浅至深(三)拦截器
- ES6-let、const和块级作用域