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

Why is the push_back method of vector not working?

我想在向量中放入一些元素。 到目前为止,我一直使用这种在向量中插入元素的方式,而且它一直有效。我不知道为什么它今天不工作。

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.I 我正在使用 SFML。

2.collisionList 是矢量。

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

4.The collisionmap 的大小不为零,因为 collisionmap.getSize() returns 准确值。

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

当然可以。这只是将内容放入缓冲区,实际上并没有输出任何内容。尝试:

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