与<list>库有关的未处理异常[关闭]

问题描述 投票:0回答:0

我有这个运行时错误:

我使用这段代码(这是最小的可重现示例代码;它在此之前说了一些其他内容。基本上,在此之前,列表是一个名为

Vector2f
snakeSegments
列表(SFML),我将setter函数替换为现在 int1(曾经是一个叫做
RectangleShape
head
)只有
int int1
,我也为
int int2
做了同样的事情。这基本上只是最后一个代码块的 mre 版本,它没有'有你需要更多东西才能工作的东西):

int main()
{
    std::list<int> integers;

    int int1 = 10;
    integers.push_back(int1);
    int int2 = 20;
    integers.push_front(int2);

    //...

    if (!integers.empty())
    {
        for (auto it = std::next(integers.begin()); it != integers.end(); ++it)
        {
            if (it != integers.begin() && int1 == *it)
            {

                int1 = 15;
                integers.erase(std::next(integers.begin(), 1));
                integers.push_front(int1);
                //...
            }
        }
        for (auto it = std::next(integers.begin()); it != integers.end(); ++it)
        {
            if (it != integers.begin() && int1 == *it)
            {
                std::cout << *it << std::endl;
            }
        }
    }
    return 0;
}

我得到未定义的行为

我试着查看 next() 函数的代码,希望弄清楚问题是否可以通过使用不同的容器(如双端队列或其他容器)来解决(比如问题是我无法使用递增列表++,所以我可以使用其他一些容器,它可以通过 ++ 递增来工作。我不认为我可以。)但这似乎不起作用。

除此之外我没有尝试太多。

c++ list sfml
© www.soinside.com 2019 - 2024. All rights reserved.