-1

我有一个 C++ 类,类似于

class Block {

...

scoped_array<Columns> columns_

...
}

现在据我了解,由于使用了数组,因此 Columns 数组的内存将是连续的。

代码的几个部分随机访问该数组的元素,即columns_[x]。

我想重构代码,使连续内存不再是一个约束。因此,我假设我必须用不具有传染性的东西替换 scoped_array。

但是,如果可以的话,我不想重新分解其他代码,以便仍然可以进行 columns_[x] 类型访问。

我可以在这里使用数据结构吗?我想我可以用 C++ 列表替换它,但是我将失去 columns_[x] 样式访问权限。我可以使用boost中的任何数据结构来代替不需要连续内存的数据结构吗?

4

1 回答 1

0

std::deque 提供与向量几乎相同的方法,但没有在内存中保持数据连续的限制。

(基于先前建议双端队列的评论)

于 2013-06-07T09:26:03.410 回答