我想进入神经网络,这就是为什么我想编写自己的 C++ 矩阵类。问题是我对 C++ 也很陌生,为了简单起见,我想使用 std::vector 而不是 2D-Array。目前我的课看起来像
class Matrix {
private:
std::vector<std::vector<float>> data_;
public:
Matrix(const int& rows, const int& columns);
};
我知道 std::vector 有点开销,但我想通过将向量缩小到所需的确切大小来尽可能地减少开销:
Matrix::Matrix(const int &rows, const int &columns) {
this->data_ = std::vector<std::vector<float>>{};
this->data_.resize(rows);
for (auto col : this->data_) {
col.resize(columns);
}
}
我的问题是:这种缩小是否符合我的预期,或者有更好的方法吗?
非常感谢!