C++ 中的 Initializer_list 类
最编程
2024-10-18 07:10:00
...
目录
initializer_list类
介绍
基本使用
常见函数
initializer_list类
介绍
initializer_list类是C++11新增的类,其原型如下:
template<class T> class initializer_list;
有了initializer_list,一些容器也可以实现列表初始化,例如vector中的构造函数:
vector (initializer_list<value_type> il,
const allocator_type& alloc = allocator_type());
基本使用如下:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v{1,2,3,4,5};
std::for_each(v.begin(), v.end(), [](int num) -> void {std::cout << num << " ";});
return 0;
}
输出结果:
1 2 3 4 5
基本使用
在标准库中,initializer_list可以使用下面的构造函数创建一个空initializer_list对象:
initializer_list() noexcept;
但是,根据官方文档的描述,尽管缺乏有参构造函数,initializer_list类依旧可以创建非空对象,只需要使用花括号列表初始化即可,例如下面的代码:
std::initializer_list<int> il{1,2,3,4};
常见函数
initializer_list类有三种常用的函数:
-
size()
:获取initializer_list对象中的元素个数 -
begin()
:获取initializer_list对象中第一个元素位置的迭代器 -
end()
:获取initializer_list对象中最后一个元素下一个位置的迭代器
基本使用如下:
#include <iostream>
#include <vector>
int main()
{
std::initializer_list<int> il{1,2,3,4};
std::cout << il.size() << std::endl;
std::for_each(il.begin(), il.end(), [](int num) -> void {std::cout << num << " ";});
return 0;
}
输出结果:
4
1 2 3 4
上一篇: 神经网络应用于材料力学
下一篇: [日志] Power Buckle Brush-Up - 买入和卖出股票的最佳时机 // Unity - 添加数据表文件、EPPlus 插件和生成 Excel 到 Json 代码文件的编辑器开发回顾
推荐阅读