我使用以下代码:
我使用这样的代码:
const vector<filterStat> someArray={
{"Ana",1},
{"Bob",2},
{"Charlie",5},
};
static const int knElements=filterStats.size();
请忽略 kn 前缀,这是我的一种表示常量大小的方法。
我发现这很有用,因为当我更改向量的初始化时,我不必更改或计算 knElements 的值。但问题在于使用 const vector 会让我感到困扰,因为 vector 是可调整大小的数组,所以这样做感觉不对。顺便说一下,如果你想知道为什么我需要它,那是一个长故事,它有点像一个映射,但我不搜索或插入任何内容,只是“对于每个”操作,所以数组是最好的选择。
编辑:
我将我的代码更改为以下内容,并成功编译:
const filterStat filterStats[]={
//...
};
static const int knFilterStats=sizeof(filterStats)/sizeof(filterStats[0]);
static_assert(sizeof(filterStats),"Can't run statistics-no filterStats exists");
我不知道在c++中可以做[]。抱歉问了一个愚蠢的问题,希望能帮助到别人。
filterStats.size
创建单独变量的决定,数组似乎是合理的选择。 - Potatoswatter