初始化列表向量时出错

时间:2016-10-18 04:34:28

标签: c++ list vector initialization

这是我的代码:

...
using namespace std;
class QueryProcessor {
int bucket_count;

vector<list<string> > hash_row(bucket_count);

size_t hash_func(const string& s) const {
    static const size_t multiplier = 263;
    static const size_t prime = 1000000007;
    unsigned long long hash = 0;
    for (int i = static_cast<int> (s.size()) - 1; i >= 0; --i)
        hash = (hash * multiplier + s[i]) % prime;
    return hash % bucket_count;
}

public:
explicit QueryProcessor(int bucket_count): bucket_count(bucket_count) {}
...

并发生此错误:[错误]'bucket_count'不是类型。 我的宣言有什么问题?

1 个答案:

答案 0 :(得分:1)

  

我的声明出了什么问题?

您无法像这样声明和初始化成员变量。

您可以将其声明为:

vector<list<string> > hash_row;

并使用:

初始化构造函数中的成员
explicit QueryProcessor(int bucket_count): bucket_count(bucket_count),
                                           hash_row(bucket_count) {}