我正在尝试有效地从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());
}
但是,这不起作用,因为容器似乎只支持自己的迭代器类型?我错过了什么吗?我想要完成的不是那么容易实现的吗?
答案 0 :(得分:2)
您的第一个版本
std::vector<double> data(begin, end);
是对的。
你的第二个版本应该是
std::vector<double> data;
data.insert(data.begin(), begin, end);