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

时间:2015-11-19 19:42:11

标签: 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
    }
}

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

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

2 个答案:

答案 0 :(得分:5)

一个选项是初始化成员初始化列表中的vector

DataSample(int n) : data(n) {

}

这使用一个接受大小的构造函数初始化vector,然后创建vectorn元素,所有这些元素都采用适当类型的默认值。< / p>

答案 1 :(得分:3)

std::vectorconstructor,可让您指定矢量的大小。如果你使用

<button id='redirect'>
<script>
    document.getElementById('redirect').onclick = function() {
        window.location = 'http://example.com/check/' + sld + tld;
    };
</script>

然后DataSample(int n) : data(n) { } 的大小为data,向量中的所有元素都将具有默认值。