c++ - 无法插入 std::list?
问题描述
我正在尝试将值插入到在 void 中调用的 std::list 中。void 会将值插入到从另一个函数调用时要使用的列表中,但是当我尝试使用 .push_back 、 .Insert 或 .Add 将值插入到列表中时,我收到以下错误:
这是我的代码:
void pb(std::list<unsigned long long int> primeFactorisation(unsigned long long int), int n)
{
for (int i=n; i<n; i++)
{
primeFactorisation.push_back(i);
}
}
我不明白我做错了什么,这是标准清单吗?
解决方案
在
void pb(std::list<unsigned long long int> primeFactorisation(unsigned long long int), int n)
你的第一个参数
std::list<unsigned long long int> primeFactorisation(unsigned long long int)
声明一个函数,而不是一个std::list
参数。你需要
void pb(std::list<unsigned long long int>& primeFactorisation, int n)
为了pb
正常工作(注意,primeFactorisation
需要通过引用传递它才能修改从调用站点传递的列表)。
您的 for 循环也有问题。
for (int i=n; i<n; i++)
永远不会像第i == n
一个循环那样运行,所以甚至在你开始之前。i < n
false
推荐阅读
- javascript - 尝试将 firebase 配置导入我的 vue 文件
- ajax - Django+Ajax:无需刷新即可更新内容
- sql - 选择 like 不起作用的地方,抛出错误消息 207
- ios - 如果不满足某些条件,如何防止保存输入
- javascript - 检测页面上的 javascript 事件注入
- html - 将img标签放入ap标签有什么好的效果吗?它完全正确吗?
- json - 为什么`inputs`会跳过输入文件的第一行?
- python-3.x - Alphvantage Intraday API 最近几天没有工作,API 正在抛出“关键错误:“时间序列(1 分钟)”
- algorithm - 求正方形中随机中心的圆恰好包含 K 个点的概率
- c++ - 在 C++ 中缩小二维向量