2012-02-08 4 views
1

나는 이런 list 가지고 :list :: iterator의 산술 연산?

list<float> l; 

을 그리고 l 10 매, 나는 l에서 처음 7 개 요소를 가지고 가고 vector에 할당 할이 알고, 그래서 나는 같이 그것을 시도 : 위의 코드는 컴파일 할 수 없습니다

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

, 후에 나는, 그래서 list::iterator가 지원 절하지 않는vector 동안 list랜덤 액세스를 지원하지 않는 것을 발견 t 산술 연산?

그렇다면 위에서 설명한 작업을 어떻게 완료 할 수 있습니까?

답변

4

사용 copy_n : 내 생각

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

는'back_inserter' 바로'v'의 크기를 조정하는 데 사용할 수 있습니다? – Alcott

+0

현재 C++ 11을 사용하고 있지 않습니다.'copy_n'을 사용할 수 있습니까? – Alcott

+1

@Alcott 예 :'copy_n (l.begin(), 7, back_inserter (v)); ' –

관련 문제