我使用这样的代码:

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 绝对是一件好事-您的代码是正确的处理方式。

07-24 20:05