我正在尝试编写一个将迭代器返回到具有正确字符串标识符(以下代码)的“节点”(我创建的对象)的函数:
list<node>::iterator point_component_from_out(const string out,const list<list<node>>::iterator &row){
list<node>::iterator it=row->begin(),r_it=row->begin();
vector<string> vct;
it++;
for(it;it!=row->end();it++){
vct=it->get_outputs_labels();
for(vector<string>::iterator vct_it=vct.begin();vct_it!=vct.end();vct_it++){
if(*vct_it==out){
r_it=it;
}
}
}
return r_it;
}
现在我从另一个函数调用此函数,该函数与上一个函数位于同一.cpp文件中。 (函数的小部分):
void graph::build_chain(string out,list<list<node>>::iterator row){
list<node>::iterator it_node,support_it;
list<list<node>>::iterator new_row;
string new_out;
int i=0;
vector<string> declared_outputs,linked_outputs,declared_inputs,linked_inputs;
//funzione che ritorna l'iteratore che punta alla porta con quell'out
it_node=point_component_from_out(out,row);
在这一点上,当我构建项目时,我从生成器中得到以下错误:
undefined reference to `graph::point_component_from_out(std::string, std::_List_iterator<std::list<node, std::allocator<node> > > const&)'
relocation truncated to fit: R_X86_64_PC32 against undefined symbol `graph::point_component_from_out(std::string, std::_List_iterator<std::list<node, std::allocator<node> > > const&)'
如果我单击该错误,则表明它指向我向您显示的第二个代码的最后一行。
答案 0 :(得分:0)
如果您将point_component_from_out
的实现写为函数-请确保它在graph::build_chain
函数之前,如果point_component_from_out
也是类成员,并且您正在为方法-检查您是否没有忘记类说明符:MyClass::method
。