加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有办法在c中初始化一些类对象的数组而不首先定义大小

发布时间:2020-12-16 09:35:21 所属栏目:百科 来源:网络整理
导读:我使用这样的代码: const vectorfilterStat someArray={ {"Ana",1},{"Bob",2},{"Charlie",5},};static const int knElements=filterStats.size(); 忽略kn前缀,这是我说的不变,大小的方式. 我发现它很有用,因为我不必在更改向量的初始化时更改或计算knElemen
我使用这样的代码:

const vector<filterStat> someArray={
        {"Ana",1},{"Bob",2},{"Charlie",5},};
static const int knElements=filterStats.size();

忽略kn前缀,这是我说的不变,大小的方式.
我发现它很有用,因为我不必在更改向量的初始化时更改或计算knElements.但问题是使用const向量困扰我,因为向量是可调整大小的数组,因此感觉不对.顺便说一句,如果你想知道为什么我需要它 – 长故事,它是一种地图,但我不做任何搜索或插入,只是“为每个”所以阵列是最好的选择.

编辑:
我改变了我的鳕鱼,它编译:

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向量是一件非常好的事情 – 你的代码是正确的做事方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读