C++ Vectorその後
電車の中で何気なく、Accelerated C++を眺めていたら、普通にvectorの実装が書いてあった。ようやくここが理解できるところまでレベルが上がったみたい。
普通にC++の枠組みで要素を移動(コピー&削除)すると、コピーコンストラクタが呼ばれてしまうので、そこでallocatorが出てくる。コンストラクタを呼ばずにデータをコピーする仕組みと、デストラクタを呼ばずに領域を開放する仕組みを提供している。なるほどねー。
STLPortsでは、allocatorの代わりに_STLP_alloc_proxyが、uninitialized_copy()の代わりに__copy_trivial()が使われている。
今から読むと、この本はアクセル踏みすぎだと思った。
The comments to this entry are closed.


Comments