gpt4 book ai didi

c++ - 使用 std::initializer_list 初始化矩阵

转载 作者:行者123 更新时间:2023-12-03 12:51:38 25 4
gpt4 key购买 nike

我创建了一个矩阵类:

template <typename T>
class Matrix
{
static_assert(std::is_arithmetic<T>::value,"");

public:
Matrix(size_t n_rows, size_t n_cols);
Matrix(size_t n_rows, size_t n_cols, const T& value);

void fill(const T& value);
size_t n_rows() const;
size_t n_cols() const;

void print(std::ostream& out) const;

T& operator()(size_t row_index, size_t col_index);
T operator()(size_t row_index, size_t col_index) const;
bool operator==(const Matrix<T>& matrix) const;
bool operator!=(const Matrix<T>& matrix) const;
Matrix<T>& operator+=(const Matrix<T>& matrix);
Matrix<T>& operator-=(const Matrix<T>& matrix);
Matrix<T> operator+(const Matrix<T>& matrix) const;
Matrix<T> operator-(const Matrix<T>& matrix) const;
Matrix<T>& operator*=(const T& value);
Matrix<T>& operator*=(const Matrix<T>& matrix);
Matrix<T> operator*(const Matrix<T>& matrix) const;

private:
size_t rows;
size_t cols;
std::vector<T> data;
};

我想提供一个采用 std:initializer_list 的 ctor。我还必须问行数和列数。我可以检查 std:initializer_list 大小是否等于行*列,如果不等于则午餐异常,但我不太喜欢这个解决方案。如果 std:initializer_list 太长,我更喜欢在矩阵已满时使用 std:initializer_list 元素:问题是我现在不知道如何逐个元素访问 std:initializer_list 。有人能帮我吗?您有更好的解决方案来使用 std:initializer_list 初始化矩阵吗?

最佳答案

您可以获取 initializer_list<T> 的元素成员函数begin()end() 。在这方面,它就像一个容器。

关于c++ - 使用 std::initializer_list 初始化矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com