在我的日常工作中,我总是被团队的高级成员建议,该列表不是缓存友好的,所以我应该vector
。我知道list
不是连续的,因此内存分配分散在整个内存中。使用自定义分配器使std :: list缓存友好?
但是,我经常需要list
(或map
)的功能。所以我想知道我是否可以编写我自己的分配器,这是一个下面的vector
。每当我push_back
时,我自己的分配器将从每个分配的vector
中分配一个新项目。
当我旅行list
/map
时,缓存位置被保留。
这对你们中的任何人都有意义吗?
'std :: list'不是关联容器。 – juanchopanza
你在找什么叫堆栈分配器 – NathanOliver
明显的问题:为什么不直接使用'vector'?这个结构给了你一个'vector'不是什么?如果您尝试使用通常比'vector'更有效的任何功能,则会泄漏内存。 – user2357112