お世話になっております。
いままで std::vector<boost::shared_ptr<~>> を使っていたところを、
Let's Boost というサイトを見て、boost::ptr_vector<~> にしようと思ったのですが、
typedef boost::shared_ptr<int> sp;
typedef std::vector<sp> vsp;
vsp cVect;
cVect.push_back( sp( new int( 0 ) ) );
// 代入
cVect[0] = sp( new int( 10 ) );
↑のように指定した要素に値を代入するやり方が分からなくて困っています。
typedef boost::ptr_vector<int> vp;
vp cVect;
cVect.push_back( new int( 0 ) );
// 削除&代入
delete &cVect[0];
*( cVect.c_array() + 0 ) = new int( 10 );
一応↑のように書けば同じことができたのですが、いちいち削除するコードを書くのが無駄な気がしてしまいす。アドバイスをお願いします!
あと、 boost の使いかたについて基本的なことを解説しているサイトってありませんか?
「こういうのがある」ということだけでも覚えておけば何か作ろうと思ったときに調べる手間が省けると思うのですが。