与<list>库有关的未处理表达式[关闭]

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

我有这个例外: 将无效参数传递给认为无效参数致命的函数。

我使用这个代码:

std::list<sf::Vector2f> snakeSegments;

    head.setSize(sf::Vector2f(squareSize, squareSize));
    head.setFillColor(sf::Color::Green);
    head.setPosition(squareSize * 10, squareSize * 5);
    snakeSegments.push_back(head.getPosition());

    newSegment.setSize(sf::Vector2f(squareSize, squareSize));
    newSegment.setFillColor(sf::Color::Green);
    newSegment.setPosition(snakeSegments.front()); // set the new segment's position to be the same as the head's position
    snakeSegments.push_back(newSegment.getPosition());

//...

if (!snakeSegments.empty())
{
    for (auto it = std::next(snakeSegments.begin()); it != snakeSegments.end(); ++it)
    {
        if (it != snakeSegments.begin() && head.getPosition() == *it)
        {
                
            head.setPosition(squareSize * roomW, squareSize * roomH);
            snakeSegments.clear();
            snakeSegments.push_back(head.getPosition());
//...
}

我得到未定义的行为

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

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

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