首页 > 解决方案 > 无法插入 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);
    }
}

我不明白我做错了什么,这是标准清单吗?

标签: c++std

解决方案


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 < nfalse


推荐阅读