簡體   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