如何用不重要的值填充数组(声明后)?

Gre*_*age 1 c++ vector

我有一个类,其成员是Vector.因此,声明在受保护的成员区域内.我有一个构造函数,它接受(除其他外)一个int,它表示Vector将有多大.我将在(有效)随机索引处向数组添加单个元素.

我的问题是:如何在声明后使用通用值(0或其等效结构)初始化Vector?或者如果失败,我如何在索引处插入元素,该索引可能大于向量的当前大小?

这是我的(简化)课程:

class DataSample {
protected:
    std::vector<data_value> data;
public:
    DataSample(int n){
        //TODO: initialize Vector here
    }
    void insertValue(int index, struct data_value value){
        //TODO: insert value at index into Vector
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在使用vector.reserve(n)来分配足够的空间(以减少调整大小延迟),但它不会改变实际大小或内容.

data_value是一个简单的结构,只包含一个uint32_t值.

tem*_*def 5

一种选择是初始化vector成员初始化列表:

DataSample(int n) : data(n) {

}
Run Code Online (Sandbox Code Playgroud)

这将初始化vector使用一个构造函数在大小,然后创建vectorn元件,所有这些都采取了适当类型的默认值.