我有一个类似
的C ++类class Block {
...
scoped_array<Columns> columns_
...
}
现在我理解因为使用数组,Columns数组的内存将是连续的。
代码的几个部分随机访问该数组的元素,即columns_ [x]。
我想重新考虑代码,以便连续的内存不再是约束。因此,我假设我必须用不具传染性的东西替换scoped_array。
但是如果我可以不想重新考虑其他代码,那么仍然可以进行columns_ [x]类型的访问。
我可以在这里使用可用的数据结构吗?我想我可以用C ++列表替换它,但之后我将失去columns_ [x]样式访问。我可以使用boost中的任何数据结构,而不需要连续的内存吗?
答案 0 :(得分:0)
std :: deque提供了与向量几乎相同的方法,但没有限制在内存中保持数据连续。
(基于早先的评论暗示deque)