別のプロジェクトのコードを使用しようとしていますが、次の形式の構造体があります。
struct data{
std::vector<sparse_array> cols,rows;
}
struct sparse_array {
std::vector<unsigned int> idxs;
std::vector<double> values;
void add(unsigned int idx, double value) {
idxs.push_back(idx);
values.push_back(value);
}
}
私のコードでは、次の行を使用してみました。
data prob;
prob.cols.reserve(num_cols);
prob.rows.reserve(num_rows);
// Some loop that calls
prob.cols[i].add(idx, value);
prob.rows[i].add(idx, value);
そして、値prob.rows[i].value[j]
をファイルに出力すると、すべてゼロになります。しかし、resize
代わりに使用するreserve
と、読み取った実際の値が得られます。誰かがこれについて説明してもらえますか?