我使用这样的代码:
const vector<filterStat> someArray={
{"Ana",1},
{"Bob",2},
{"Charlie",5},
};
static const int knElements=filterStats.size();
忽略kn前缀,这是我说常量,大小的方式。
我发现它很有用,因为在更改 vector 的初始化时不必更改或计算knElements。但是问题是使用const vector 会让我感到困扰,因为vector是可调整大小的数组,因此感觉不对。顺便说一句,如果您想知道为什么我需要冗长的故事,那有点像 map ,但是我不做任何搜索或插入,只是“针对每个对象”,所以数组是最佳选择。
编辑:
我将鳕鱼更改为此,并进行编译:
const filterStat filterStats[]={
//...
};
static const int knFilterStats=sizeof(filterStats)/sizeof(filterStats[0]);
static_assert(sizeof(filterStats),"Can't run statistics-no filterStats exists");
我不知道您可以在c++中执行[]。很抱歉这个愚蠢的问题,希望对您有所帮助。
最佳答案
const vector 绝对是一件好事-您的代码是正确的处理方式。