繁体   English   中英

指向指针向量的向量

[英]Vector pointing to vector of pointers

在我的框架类中,我声明了这个向量: std::vector<sf::Drawable*> drawableStack;

当drawableStack全部填满时,我想在这样的循环中绘制所有对象:

void Framework::drawScreen()
{
    window->clear();

    std::vector<sf::Drawable*>::iterator itr;

    for(itr=drawableStack.begin(); itr!=drawableStack.end(); itr++)
    {
        window->draw(itr);
    }

    window->display();
}

window在头文件sf::RenderWindow* window; 并且绘制函数为sf::RenderWindow::draw(const sf::Drawable&) ,错误为error: no matching function for call to 'sf::RenderWindow::draw(std::vector<sf::Drawable*>::iterator&'

您忘记了取消引用迭代器。 更改此行:

window->draw(itr);

window->draw(**itr);

您必须取消引用两次。 一旦从迭代器到达sf::Drawable*它指向第二次,因为向量持有指针,并且函数将引用作为参数。

您需要同时取消引用迭代器和指针:

window->draw(**itr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM