【发布时间】:2011-01-19 00:46:33
【问题描述】:
我在我的 SDL 程序中使用了 STL 向量。它看起来像这样:vector vec;这使得向量可以包含指向 Bullet 对象的指针。当我运行我的程序时,我一次只添加一个项目:vec.push_back(new_bullet); (new_bullet 是指向“新”Bullet 对象的指针。然后在以下函数中,我使用以下函数擦除对象: vec.erase(...); vec.size() 表明项目正在被正确推送和弹出。我我正在运行 Ubuntu 9.10,系统监视器显示我的程序内存使用量正在缓慢增加。是我的程序还是我缺少关于 STL 向量的东西?
【问题讨论】:
-
如果你想存储指向对象的指针,我推荐Boost指针容器库:boost.org/doc/libs/1_42_0/libs/ptr_container/doc/…这让你从内存管理的负担中解放出来。 (就目前而言,我怀疑您的向量是否非常安全,因为不能保证您循环遍历向量并在其销毁时删除每个元素。)