如何使用嵌套初始化构造函数中的一维向量初始化矩阵
How to initialize matrix with 1d vector from nested initialized constructor?
我遇到了将嵌套形式的矩阵初始化为矩阵类的向量成员的问题initializer_lists。 您能否为我提供一个有关如何执行此操作的解决方案!
#include <initializer_list>
#include <iostream>
#include <stdexcept>
#include <vector>
using namespace std;
class matrix {
private:
unsigned int rows;
unsigned int columns;
vector<int> data;
public:{
matrix(size_t rows, size_t columns):rows(0),columns(0),data(){
};
matrix(size_t ros, size_t cols, const int &ival){
data.clear();
rows =ros;
columns = cols;
size_t vSize = rows*columns;
for(unsigned int i = 0; i < vSize; i++) {
data.push_back(ival);
}
};
friend ostream &operator<<(ostream &os, const matrix &m){
for(size_t i = 0; i < m.data.size(); i++) {
os << m.data[i] << " ";
if((i+1)%m.num_columns() == 0)
os <<"n";
}
return os;
};
matrix(initializer_list<initializer_list<int>> imat); //require
//implementation of constructor to feed nested initializer list data in
//1d vector data
}
int main() {
matrix<double> d = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
cout<<d;
return 0;
}
像这样的东西?
matrix(std::initializer_list< std::initializer_list< int > > imat)
{
for (auto &row : imat)
{
data.insert(data.end(), row.begin(), row.end());
}
}
相关文章:
- 如何使用C++初始化向量;脚本化值不是数组、指针或矢量错误
- 在C++中初始化向量映射的最有效方法
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 用向量的向量元素初始化向量的空向量
- 初始化向量数组,其中每个向量的大小为 0
- 如何初始化向量<unordered_map<*,*>>
- 如何在元组初始化向量中删除样板?
- C++ 通过函数声明后初始化向量
- 特征::向量;在函数中使用 Eigen::Matrix3f 的值初始化向量,大于 4 个条目
- 使用所述填充构造函数初始化向量中的向量
- 制作可用于初始化向量的迭代器
- 如何使用sregex_token_iterator对象初始化向量
- 用空向量 c++ 的 M 元素初始化向量
- 用reference_wrapper本地初始化向量
- 将向量元素与字符串元素进行比较,而不初始化向量
- 使用 reference_wrappers 初始化向量
- 从不同类型的容器的迭代器初始化向量
- 在具有容量/调整大小的类中初始化向量
- 在头文件中声明和初始化向量
- 错误:调用'begin(long double [nPoints])'没有匹配函数;使用硬编码的 int 与整数变量初始化向量