2012-02-08 88 views
1

我有一个list这样的:对list :: iterator进行算术运算?

list<float> l; 

而且我知道在l 10元,我想借此从l前7个元素,并将它们分配给vector,所以我试图做这样的:

vector<float> v(l.begin(), l.begin()+7); 

上面的代码无法编译,后来我发现,list不支持随机存取vector呢,所以list::iterator不支承实算术运算?

如果是这样,我如何完成上述工作?

回答

4

使用copy_n:

v.resize(7); 
copy_n(l.begin(), 7, v.begin()); 
+0

我想,在'back_inserter'可以用来调整'v',对不对? – Alcott 2012-02-08 08:13:32

+0

我目前没有使用C++ 11,我可以使用'copy_n'吗? – Alcott 2012-02-08 08:23:29

+1

@Alcott是:'copy_n(l.begin(),7,back_inserter(v));' – 2012-02-08 08:24:45