MFC VC++6.0 XP
vector 配列をマージさせたいのですが、コンパイルエラーが出力されます。
詳しい方よろしくおねがいします。
vector <CPoint> wFront ;
vector <CPoint> wBehind ;
wBehind.push_back(CPoint(4,4)) ;
wBehind.push_back(CPoint(5,5)) ;
wBehind.push_back(CPoint(6,6)) ;
wFront.push_back(CPoint(1,1)) ;
wFront.push_back(CPoint(2,2)) ;
wFront.push_back(CPoint(3,3)) ;
//この行でコンパイルエラー
wFront.insert(wFront.end(),wBehind.size(),wBehind) ;
***エラーメッセッージ***
3 番目の引数を 'class std::vector<class CPoint,class std::allocator<class
CPoint> >' から 'const class CPoint &' に変換できません。
CPointクラスのインスタンスを作成して引数として渡せばいいのでは?
#include <inserter>
...
// wFrontの末尾にwBehindの全要素をコピー
std::copy(wBehind.begin(), wBehind.end(), std::back_inserter(wFront));
おっとチョンボ。
× #include <inserter>
○ #include <inserter>
あーもーなにやってんだろ
× #include <inserter>
○ #include <iterator>
> // wFrontの末尾にwBehindの全要素をコピー
> std::copy(wBehind.begin(), wBehind.end(), std::back_inserter(wFront));
あるいは
wFront.insert(wFront.end(), wBehnd.begin(), wBehind.end());
うみんちゅさん、επιστημηさん、レスありがとうございました。
wFront.insert(wFront.end(), wBehnd.begin(), wBehind.end());
でできました。
ありがとうございました。
えーと...ともかくマニュアル読みましょう。
STLの解説をしてくれているHPは探せば見つかると思うので
一度ちゃんと勉強した方が良いのではないかなと思います。
まあ、プログラミングやっていると勉強することばかりで
常に勉強する必要が有りますけれど。
KAB-studio
http://www.kab-studio.biz/index.html
ここでSTLの解説をやっていたと思います。
代表的なアルゴリズムに関しての解説もあったと思います。
あとは書籍を購入して勉強とか。