【C++】STL(Standard Template Library)相談室 4
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
900:デフォルトの名無しさん 06/03/14 06:54:23 >>898 それだとtargetとeraseのサイズに比例した一時領域を食うからアンマリ良くないと思う。 コピーを作るより破壊的にコンテナに直書きしていったほうがコストが抑えれる。 void VectorEraser( std::vector<int>& target,const std::vector<int>& erase) { std::vector<int>::const_iterator ei(erase.begin()); std::vector<int>::const_iterator ee(erase.end()); std::vector<int>::iterator di(target.begin()); std::vector<int>::iterator tb(target.begin()); std::vector<int>::iterator ti(target.begin()); std::vector<int>::iterator te(target.end()); for(;ei != ee;++ei) { std::vector<int>::iterator x(tb);std::advance(x,*ei); di = std::copy(ti,x,di); ti = ++x; } di = std::copy(ti,te,di); target.resize(std::distance(target.begin(),di)); }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4282日前に更新/228 KB
担当:undef