std::initializer_list能够进行列表初始化,可以是自定义数据类型
1.简单使用:接收任意长度的数据
需求:封装一个A类能够接收任意长度的数据传入。
A类实际是封装的vector数组,有三个成员函数:构造函数、增加函数和打印函数
class A {
public:
A(initializer_list<int> integers);
void add(initializer_list<int> integers);
void print();
private:
vector<int> v;
};
具体实现:构造函数将传入的参数放入vector,而add函数将新数据尾插进vector中
A::A(initializer_list<int> integers) {
v.insert(v.begin(), integers.begin(), integers.end());
}
void A::add(initializer_list<int> integers) {
v.insert(v.end(), integers.begin(), integers.end());
}
void A::print() {
for (auto c : v)
cout << c << " ";
}
调用比较简单,需要注意:初始化列表需要用大括号{ }
包裹数据。
int main() {
A a{
1,2,3 };
a.add({
4,5,6 });
a.print();
return 0;
}
结果如图
完整代码
#include<iostream>
#include<initializer_list>
#