今回、c++言語でmerge()の使用方法がわからなかったのでここに質問します。
プログラムは以下に書いてある通りです。
vectorコンテナv01とv02には乱数が格納されています。
dequeコンテナq1とq2にはinsert()を使用して、v01とv02の値をq1,q2に格納します。
その後、merge()アルゴリズムを用いてdequeコンテナq1とq2をdequeコンテナq3へマージする。
この際、
merge(q1.begin(),q1.end(),q2.begin(),q2.end(),q3.begin())
という風に書くと書いてあったので実際に試してみたのですがうまく動きません。
どこがおかしいのでしょうか?
ご指摘の程よろしくお願いいたします。
僕の使用している環境はVisual Studio 2013です。
表示されるエラーとしては
Expression : deque iterator not incrementable
です。
vector<double> v01. v02;
deque<double> q1, q2, q3;
d = q1.begin();
q1.insert(d, v01.begin(), v01.end());
sort(q1.begin(), q1.end());
d = q2.begin();
q2.insert(d, v02.begin(), v02.end());
sort(q2.begin(), q2.end());
merge(q1.begin(), q1.end(), q2.begin(), q2.end(), q3.begin());
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/12/28 15:04
2014/12/28 18:00
2014/12/28 18:23