2012-02-08 86 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