std::vector实现原理及特定场景下的改进
std::vector实现原理及特定场景下的改进1) 说一下std::vector的实现原理,主要讲一下和内存管理相关的内容。2) 常驻内存程序,一个std::vector的生命周期和程序生命周期相同,且会频繁的调用std::vector的push_back()和clear()方法,调用clear()方法时,vector.size()小于1万的概率为0.95,vecto
·
std::vector实现原理及特定场景下的改进
1) 说一下std::vector的实现原理,主要讲一下和内存管理相关的内容。
2) 常驻内存程序,一个std::vector的生命周期和程序生命周期相同,且会频繁的调用std::vector的push_back()和clear()方法,调用clear()方法时,vector.size()小于1万的概率为0.95,vector.size()可能出现的最大值为100万。如果程序中有多个这样的std::vector实例,程序长期运行后,会导致内存持续增长,一定时间后,可能将内存耗尽。请问,如何用较小的代价修改vector的设计,来避免内存持续增长问题。
答:
1)内存不够用时,双倍扩容。clear()时,不释放内存,以减少内存分配次数。
2)修改clear()方法,当vector.size()大于1万时,释放内存。
更多推荐
所有评论(0)