2

我的类中有一个成员在我的头文件中定义如下:

static const vector<note_name> noteMap;

在我的源文件中,我想为向量赋值,所以我尝试了:

const vector<note_name> AppSettings::noteMap = {...}

但我收到一个错误:Non-aggregate type 'const vector<note_name>' cannot be initialized with an initializer list. 有什么想法可以初始化这个向量吗?顺便说一句,使用数组不是一种选择。

4

1 回答 1

4

编写一个函数,返回 avector<note_name>并填充适当的值,并使用该函数来初始化noteMap。这将永远有效;有了有关初始化程序的更多信息,可能会提出更好的解决方案。或者,如果您有 C++11,则可以使用示例中的初始化列表。

或者,使用 TR1 或 Boost 或 C++11,将 更改vectorarray<note_name>. 该array模板支持聚合初始化。

于 2012-08-25T15:22:50.117 回答