deque と vector の両方が、成長のためにいくらかのスペースを確保していることを理解しています。vector::capacity() は、ベクターの内部予約スペースを取得できます。Deque には、標準にそのようなメンバーはありません。この情報を取得する方法はありますか?
2175 次
2 に答える
7
それを理解するには、実装を掘り下げる必要があります。std::deque
gcc 4.1.1 に付属するのバージョンは、512 バイトのチャンクでメモリを割り当てるようです。しかし、すべてのアンダースコアと への C スタイルのキャストを 15 分間じっと見つめた後に得たのは、これまでのところsize_t
です。すると、こんなコメントを見つけました。
初期の基になるメモリ レイアウトは少し複雑です...
于 2010-07-01T14:50:50.763 に答える
6
ポータブルではありません。deque のメンバーがない理由capacity
は、連続したメモリを使用しないためです。パフォーマンスに関しては、それを考慮する理由はありません。
于 2010-07-01T13:55:29.307 に答える