C++获取具有其他参数的构造函数的初始值设定项列表
C++ get initializer list for constructor with other parameters
class V
{
private:
int m_size;
std::vector<int> m_list;
public:
V(int size, std::initializer_list<int> init_list) : m_size(size)
{
m_list = std::vector<int>(init_list.begin(), init_list.end());
}
};
我创建了一个类,该类的构造函数接受多个参数,包括initializer_list。我想像这样使用这个类
V v(2) = {1, 2};
但我只能像这样使用这个类
V v(2, {1, 2});
我不能像我写的第一段代码一样,按非initializer_list部分和initializer_list部分来区分参数吗?
您可以更改构造函数以仅获取initializer_list
:
class V
{
private:
std::vector<int> m_list;
int m_size;
public:
V(std::initializer_list<int> init_list):
m_list(init_list.begin(), init_list.end()),
m_size(m_list.size()) { }
};
并用以下命令构造 V 对象:
V v1 = {1,2};
V v2({1, 2});
由于std::vector
,您不再需要输入大小。
相关文章:
- 一对向量构造函数:初始值设定项列表与显式构造
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 构造函数/函数声明参数列表中的统一初始化
- 在初始化列表之外手动调用基类的构造函数
- 采用初始值设定项列表的构造函数
- 提供初始值设定项列表构造函数的有效方法
- C 标准中是否有任何计划来解决初始化器列表构造函数的不一致性
- 接受迭代器的初始值设定项列表构造函数
- STD :: MAP初始化列表构造函数
- 如何避免丢失自动生成的初始化列表构造函数
- 如何最小化调用列表构造函数(复制构造函数)的次数?
- 初始化列表构造函数错误带有CRTP
- 启用默认初始值设定项列表构造函数
- 使用初始化列表构造函数时C++奇怪的行为
- 自定义列表类的初始值设定项列表构造函数
- 初始值设定项列表构造函数导致右值构造函数不明确
- 调用初始化列表构造函数的不同方式
- 为什么std::array不包含初始化列表构造函数
- C++ 为类模板提供初始值设定项列表构造函数
- 何时使用初始值设定项列表构造函数