我现在已经使用STL很长一段时间了,但主要是为了实现算法,除了其他代码中的偶然向量。
在我开始使用它之前,我想知道人们在使用STL时常犯的错误 - 特别是,在使用STL模板保护我的代码免受内存泄漏时,我应该注意哪些事项?
答案 0 :(得分:13)
有效使用STL存在很多瓶颈,如果你想了解更多,我会推荐这本书"Effective STL" by S.Meyers。
答案 1 :(得分:9)
当您将原始指针存储到容器中的动态分配对象时,容器将无法管理其内存。
vector<FooBar*> vec;
vec.push_back(new FooBar); //your responsibility to free them
为了使更多的内存泄漏证明使用智能指针容器或专用指针容器,如Boost:pointer containers
特别是考虑到如果抛出异常,执行可能无法达到手动清理代码(除非付出痛苦的努力)。
答案 2 :(得分:6)
特别是,在使用STL模板保护我的代码免受内存泄漏的影响时,我应该注意哪些事项?
STL与否,答案是一样的: