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

关于std::__1::array无add成员及函数调用不匹配的报错咨询

搞定你的C++编译错误

嘿,这俩错误都是C++容器使用里的常见坑,我帮你逐个拆解:

第一个错误:std::__1::array 找不到 add 成员

问题核心很直接:std::array 是固定大小的容器,从设计上就没有 add() 这个成员函数。它的大小在声明时就固定死了,没法动态往里面加元素,只能通过下标(比如 output[0])或者迭代器修改已有的位置。

如果你的需求是动态添加元素,赶紧把 output 的类型换成 std::vector——这才是支持动态扩容的序列容器,用 push_back() 就能加元素,写法是:

output.push_back(R1.voltage());

要是你非得用 std::array,那得提前确定好它的大小,然后用下标赋值,比如:

// 假设你声明的是std::array<double, 3> output;
output[0] = R1.voltage();
// 后续元素就用output[1]、output[2]这类下标来赋值

第二个错误:函数调用不匹配

这个错误基本是第一个问题连锁出来的:

  1. 你调用了 std::array 根本没有的 add() 方法,编译器找不到这个函数,自然报“没有匹配的函数调用”;
  2. 还有一种可能是 R1.voltage() 的返回值类型,和 output 存储的元素类型不兼容。比如 output 存的是 int,但 voltage() 返回的是 double,这种情况要么做类型转换,要么调整容器的元素类型。

举个例子,如果 voltage() 返回的是浮点型,你的容器得这么声明:

std::vector<double> output; // 或者std::array<double, 5> output; 这里的5是你要的固定大小

要是能把你的头文件和 main.cpp 代码贴出来,我能更精准地帮你排查细节,但就目前的错误信息来看,上面的方案应该能解决核心问题啦。


内容的提问来源于stack exchange,提问作者Rıdvan Küçük

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:23:15