You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何分配指定大小的std::initializer_list并循环添加元素?

关于std::initializer_list的使用误区

std::initializer_list不支持动态添加元素,它的设计定位是作为初始化其他容器/对象的临时列表载体,本身是只读、大小固定的轻量视图,无法在后续修改或扩展元素数量。

如果你需要先分配初始大小、后续再动态添加元素,应该使用std::vector<float>这类支持动态扩容的容器,示例代码如下:

std::size_t size = 5; // 替换为你的实际size值
std::vector<float> tmp(size); // 初始化包含size个float元素,默认值为0.0

// 后续循环中添加元素
for (int i = 0; i < 3; ++i) {
    tmp.push_back(static_cast<float>(i));
}

补充说明std::initializer_list的核心特性:

  • 构造时大小就已固定,没有提供push_back、insert等修改元素数量的成员函数
  • 内部元素是只读的(元素类型为const float),无法修改现有元素,更无法新增
  • 它的典型用法是传递初始化列表,比如std::vector<float> v = {1.2f, 3.4f, 5.6f};,而非作为动态存储容器使用

内容的提问来源于stack exchange,提问作者awwd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:45:39