2012-07-23 2 views
1

벡터 ++이 :표준 : 나는 C에서 벡터 코드가 삽입 오류

typedef vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> >::iterator traveling; 
traveling running = 
std::partition(wait.begin(), wait.end(), tuple_comp ); 
running_jobs.insert(running, wait.end()); 
wait.erase(running, wait.end()); 

그리고이 오류는 나를주고있다 :

main.cpp:223: error: no matching function for call to ‘std::vector<boost::tuples::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, std::allocator<boost::tuples::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > 
>::insert(threaded_function(ppa::Model_factory&, ppa::Node*)::traveling&, 
__gnu_cxx::__normal_iterator<boost::tuples::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>*, std::vector<boost::tuples::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, std::allocator<boost::tuples::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >)’ 

이 넷빈즈 7.2, 내가 벡터를 모르는 std에 삽입이 있어야하는데 뭔가 빠졌습니까?

running_jobs = vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > running_jobs; 

line 223 running_jobs.insert(running, wait.end()); 
+2

는 라인 우리는 running_jobs' '의 정의를 참조 할 필요가 223 – 111111

+0

입니다. 유형이 섞여있는 것 같습니다. 이 오류는 적절한 'insert'멤버 함수가 없다고 말합니다. – pmr

+0

이것은'running_jobs'의 * type *이'wait'의 * type *과 다르기 때문일 가능성이 큽니다! – Nim

답변

3

작동

running_jobs.insert(wait.end(), running); 

희망해야한다. 당신은 running_jobs에 삽입하는 insert을 알려야합니다
http://www.cplusplus.com/reference/stl/vector/insert/

를 살펴 보자. 아마 같은 :

running_jobs.insert(running_jobs.end(), running, wait.end()); 
+0

그래, 해냈어. (: –

1

나는 running_jobs를 무엇입니까? 나는 그것의 벡터를 가져 간다. 또한 객체는 내가

running_jobs.insert(running, wait.end()); 

잘못 호출에 그에게 벡터

가정 "대기". 첫째 PARAM 반복자 해야합니다 그래서 바로 호출이 문제는 참으로 insert에 전화입니다이

+0

실행 중 std :: partition ...이 반환되는 것으로 초기화되는 반복자입니다. – ForEveR

+0

아니요, running_jobs.insert (wait.end(), running); 똑같은 main.cpp : 223 : 오류 : 'std :: vector