c++ - 使用 vector 的内容初始化类对象

标签 c++ constructor operator-overloading

我目前正在研究一个矩阵类,其中有一个部分一直被我卡住。

例如,如果我想用 vector 的内容初始化一个类对象

矩阵 M = {1, 2, 3, 4, 5, 6}

我是否必须重载 operator= 或是否可以创建一个可以做到这一点的构造函数?

最佳答案

如果“vector ”是指 std::vector,那么您显然可以创建一个构造函数:

Matrix(const std::vector<int>&);

如果您指的是 {1, 2, 3, 4} 语法,那么您可以创建一个采用 std::initializer_list 的构造函数

Matrix(const std::initializer_list<int>&);

关于c++ - 使用 vector 的内容初始化类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613914/

相关文章:

constructor - 何时使用lateinit,init block 和伴随对象。 Kotlin

c++ - 使用构造函数参数初始化结构数组

python - SWIG 3 使用模板化构造函数包装未模板化的类

c++ - 为非数组元素重载下标运算符

c++ - C++中运算符<<的重新定义

c++ - 重载 > 运算符在应该返回 false 时返回 true

c++ - 生成包含给定类型的 N 个参数的可变参数列表的最佳方法?

c++ - HP-UX 和 Solaris 10 之间的 POSIX 线程行为不同

c++ - C++ 标准是否对 vector 赋值函数或构造函数有明确的要求?

c++ - 如何从被多次调用的 RNG 中获取 2 个不同的号码