1
我想從std :: list有效地初始化一個std :: vector,但是我沒有任何運氣。使用迭代器從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());
}
但是,這是行不通的,因爲容器似乎只支持自己的迭代器類型?我錯過了什麼嗎?我試圖完成的事情不是那麼容易嗎?
在這兩種情況下,我得到這個錯誤錯誤C2678:二進制「+」:沒有操作員發現這需要類型「性病的左側操作數::名單<_Ty> :: _Iterator <_Secure_validation>'(或者沒有可接受的轉換) –
好的,原來這是我的錯。我將一個帶有偏移量(mylist.begin()+ 40)的std :: list迭代器傳遞給函數,這是罪魁禍首。否則,就像你說的那樣。感謝您的確認。 –