std::矢量插入错误
std::vector insert error
我在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> > > >)’
这是netbeans 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());
问题实际上是您对insert
的调用。查看
http://www.cplusplus.com/reference/stl/vector/insert/
您必须告诉insert
在running_jobs
中的插入位置。可能类似于:
running_jobs.insert(running_jobs.end(), running, wait.end());
什么是running_jobs?我认为它是一个矢量。还有对象"等待",我假设它是一个矢量
用于呼叫
running_jobs.insert(running, wait.end());
是错误的。第一个参数必须是迭代器所以正确的呼叫应该是
running_jobs.insert( wait.end(), running);
希望这能起作用
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在链表中的第 n 位插入显示分割错误
- C++ - 将元素按升序插入数组的 SEG 错误
- 在二叉搜索树中插入时出现分段错误
- 尝试将对象插入空指针数组时出现分段错误
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- Sqlite3插入错误C++
- std::映射导致插入时出现C2664错误
- 为什么 C++ 中的分号在插入代码开头时不显示任何错误?
- 我在C++中遇到插入运算符错误
- 在共享内存中插入映射映射时出现编译器错误
- VS 2017 错误 C2664 地图插入尝试
- 错误表达式必须是插入函数(二叉树 C++)中的可修改 Ivalue
- C++插入排序错误功能不起作用
- 字符串::插入产生运行时错误
- 插入排序打印错误的输出
- "<某些系统标头>:错误:"<在此处插入函数>"在移动源文件后不是"std"的成员
- 在将第一个值插入链表时尝试访问 head 时出现分段错误
- 将 2D 数组插入 std::vector 时"cannot convert from 'const GLfloat [12]' to '_Objty'"错误消息
- 将项目插入到std :: map时错误