Scoped Allocator Model
Scoped Allocator Modelが何かはアキラさんのブログを参照してください.
C++0x Scoped Allocator Model - Faith and Brave - C++で遊ぼう
詳細(コード例)は分からないけど(何となくしか),これってメモリ上で要素同士を順序どおりに隣接させることができるのかな.
std::vector< std::vector<int> > v; int sum = 0; for(std::size_t i=0; i<v.size(); ++i){ for(std::size_t j=0; j<v.size(); ++j) sum += v[i][j]; }
上のコードをC++でやると,当然キャッシュのヒット率が下がる.
Scoped Allocator Modelをうまく使えば,メモリ上に1次元配列のように並べられるのかなぁ.
いや,メモリ上に一か所になるってのは分かるんだけど,順序どおりに並ぶのかどうかだよね.
でもそれはAllocatorとは別か.
そもそもvectorのvectorを使わなきゃいい話だけど.
N2554へのリンクが貼ってあるけど,それ以前にまだ何にも読んでないんだよね.
分かるわけがない.
余裕ができてきたらC++0xの勉強も本格的にやりたいなぁ.