1
std :: vectorをstd :: listから効率的に初期化しようとしていますが、うまくいきません。イテレータを使用してstd :: listからstd :: vectorを初期化します。
例えば、それはこのような何かしたいと思います:
void myFunc(std::list<double>::iterator begin, std::list<double>::iterator end)
{
std::vector <double> data(begin, end);
// or
std::vector <double> data;
data::insert(data.begin(), data.end());
}
コンテナが唯一、自分のイテレータ型をサポートするように見えるので、これが動作しませんか?何か不足していますか?私が達成しようとしていることは容易に可能ではないのですか?
する必要があります:バイナリ「+」:なしオペレータはタイプ「STDの左側のオペランド::リスト<_Ty>をとる見つからなかっ:: _Iterator <_Secure_validation> '(または許容される変換はありません) –
OK、これは私のせいでした。私はstd :: listイテレータをオフセット(mylist.begin()+ 40)で関数に渡していましたが、それが原因です。あなたが言ったように、それは別の方法で動作します。確認していただきありがとうございます。 –