-1

私は次のようなC++クラスを持っています

class Block {

...

scoped_array<Columns> columns_

...
}

配列を使用しているため、理解したように、列配列のメモリは連続します。

コードのいくつかの部分は、この配列の要素にランダムにアクセスします。つまり、columns_[x] です。

連続したメモリが制約にならないように、コードをリファクタリングしたいと考えています。したがって、scoped_array を伝染性のないものに置き換える必要があると思います。

ただし、できれば、他のコードをリファクタリングしたくないので、columns_[x] 型のアクセスがまだ可能です。

ここで使用できるデータ構造はありますか? C++ リストに置き換えることができると思いますが、columns_[x] スタイル アクセスが失われます。連続したメモリを必要としない代わりに使用できるブーストのデータ構造はありますか?

4

1 に答える 1

0

std::deque は vector とほぼ同じメソッドを提供しますが、データをメモリ内で連続して保持するという制限はありません。

(dequeを示唆する以前のコメントに基づく)

于 2013-06-07T09:26:03.410 に答える