c++ - std::vector 插入错误

标签 c++ vector iterator

我有一个用 C++ 编写的 vector 代码:

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> > > >)’

这是 netbeans 7.2,我不知道 std 中的 vector 应该有插入,我是不是遗漏了什么?

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

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

最佳答案

问题确实是您对 insert 的调用。看看
http://www.cplusplus.com/reference/stl/vector/insert/

您必须告诉 insert 要插入到 running_jobs 的位置。可能是这样的:

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

关于c++ - std::vector 插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11612330/

相关文章:

c++ - 从函数返回 vector 给出 "vector subscript out of range"错误

java - 使用 HashMap 迭代器

java - 如何初始化一个迭代器

c++ - 是否有支持内置对象序列化的 C++ 编译器或附加组件?

c++ - 有没有办法在 C++ 编译器中禁用复制省略

c++ - for 循环的问题(初学者)

python - 如何生成 3D 矢量网格? (3D网格中的每个位置都是一个向量)

OpenCV:矩阵迭代

c++ - 在 C++ 中,重载运算符后,运算符是否会失去其旧功能?

c++ - 使用 goto 是打破两个循环的合法方式吗?