我知道,该向量类以下列方式初始化:
Vector::Vector(initializer_list<double> lst)
:size{static_cast<int>(lst.size())},elem{new double[static_cast<int>(lst.size())]}
{
copy(lst.begin(),lst.end(),elem);
}
Run Code Online (Sandbox Code Playgroud)
这是我的矩阵类:
class Matrix{
private:
int row;
int col;
double elem**
public:
//Default Constructor:
Matrix(int row,int col);
//Initialized list constructor:
Matrix(initializer_list<initializer_list<double>> lst);
Run Code Online (Sandbox Code Playgroud)
我想,我应该在初始化列表中使用初始化的 lis 来创建初始化矩阵。从语法的角度我该怎么做?
我想超载<< operator.这是我的代码:
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <algorithm>
#include <cmath>
#include <list>
using namespace std;
enum class Zustand{Neuwertig,Gut,Abgegriffen,Unbrauchbar};
class Exemplar{
private:
int aufl_num;
Zustand z;
bool verliehen;
public:
Exemplar(int aufl_num);
Exemplar(int aufl_num,Zustand z);
bool verfuegbar() const;
bool entleihen();
void retournieren(Zustand zust);
friend ostream& operator<<(ostream& os, const Exemplar& Ex);
};
//Constructor 1;
Exemplar::Exemplar(int aufl_num):
aufl_num{aufl_num},
z{Zustand::Neuwertig},
verliehen{false}
{
if(aufl_num >1000 || aufl_num <1) throw runtime_error("Enter correct number betwee 1 and 1000");
}
// Constructor 2; …Run Code Online (Sandbox Code Playgroud)