vector resize()自动填充

lim*_*lim 4 c++ resize vector

我正在编写一个包含矩阵(具有双值)的类,表示为vector<vector<double>>;

我想实现operator=,用给定的稀疏矩阵的细节重新填充我的矩阵.我正在编写以下代码:

RegMatrix& RegMatrix::operator=(const SparseMatrix rhs){
    if(*this != rhs){
        _matrix.clear();
        _matrix.resize(rhs.getRow());
        int i;
        for(i=0;i<rhs.getRow();++i){
            _matrix.at(i).resize(rhs.getCol());
        }

        for(i=0;i<rhs.getSize();++i){
            Element e = rhs.getElement(i);
            _matrix[e._row][e._col] = e._val; 
        }
    }

    return *this;
}
Run Code Online (Sandbox Code Playgroud)

resize()方法是否使用零自动填充向量?我的实施是否正常?

Ste*_*end 5

新元素采用vector成员的默认值,如果使用resize带有两个参数的重载,则采用特定值.

void resize(
   size_type _Newsize,
   Type _Val
);
Run Code Online (Sandbox Code Playgroud)

在您的情况下,默认vector<double>值为空- 如果这不是您想要的,请将您想要放在那里的内容传递给上面的重载.

不修改现有元素.