向量的初始化向量(外向量和内向量)

时间:2017-04-04 06:24:04

标签: c++ vector

这里有很多类似的问题,但我并没有真正找到任何可以回答我问题的问题。

我有一个向量向量作为类的属性。另一个属性是bucket_count。我想将矢量矢量初始化为bucket_count的大小,然后将其中的每个矢量初始化为单个""。

目前,我有

class QueryProcessor {
private:    
    int bucket_count;
    // store all strings in one vector
    vector<vector<string> > hash_table(bucket_count);

但这不会编译(抛出error: unknown type name 'bucket_count'

删除那个如果编译得很好,但最终会出现故障。我已经用调试器跟踪了它,看起来好像在这里

.
.
.
} else if (query.type == "add") {
                // Check if string already in table
                for (int i = 0; i < hash_table[hash].size(); i++) { // throws EXEC_BAD_ACCESS here
                    if (hash_table[hash][i] == query.s) {
                        return;
                    }
                }
.
.
.

我认为这可能是由于没有初始化向量,因此上面的问题。

编辑:忘了陈述我想要一种没有for循环的方法

1 个答案:

答案 0 :(得分:3)

在类定义中,vector<vector<string>> hash_table(bucket_count);声明一个函数,它接受bucket_count并返回vector<vector<string>>

在构造函数中初始化:

QueryProcessor:: QueryProcessor(int count)
    : bucket_count(count),
      hash_table(bucket_count, vector<string>(1))
{
}