为什么vector的push_back方法不起作用?

时间:2015-07-17 03:02:09

标签: c++ c++11 vector sfml

我想在向量中添加一些元素。 到目前为止,我总是使用这种方式在向量中插入元素,它始终有效。我不知道为什么它今天不起作用。

World::World()
{
    collisionmap.loadFromFile("collisionmap.png");
    for(int i=0; i<collisionmap.getSize().y; i++)
    {
        for(int j=0; j<collisionmap.getSize().x; j++)
        {
            if(collisionmap.getPixel(j,i)==sf::Color(0,0,0))
            {
                  cout<<"test"<<endl //prints perfectly
                  collisionList.push_back(sf::FloatRect(j*32, i*32, 32, 32));
            }
        }
    }
    cout<<collisionList.size(); //shows nothing
}

编辑:

我忘了提及: -

1.我正在使用SFML。

2. collisionList 是向量。

3.此代码编译没有任何问题。

4.碰撞图的大小不为零,因为 collisionmap.getSize()会返回准确的值。

1 个答案:

答案 0 :(得分:2)

cout<<collisionList.size(); //shows nothing

当然。这只是把东西放在缓冲区中,它实际上并没有输出任何东西。尝试:

cout<<collisionList.size()<<endl;