How to return null pointer for list member c++? -
i need return pointer member in list, , if required member not there null pointer (or other indication)
list<links>::iterator find_link(list<links> &link, char* id) {     list<links>::iterator link_index;     links link_i;      link_index = link.begin();     (int = 0; < link.size(), i++)     {         link_i = *link_index;          if (!strcmp(link_i.id, id)) { return link_index; };          link_index++;      };     cout << "node outsession not exist " << id;     return nullptr; // error (nullptr not same type list<links>::iterator) };   i added error message (cout << "node outsession not exist " << id;) indicate if link not found, need indicate caller function.
how can ? thanks
nullptr not iterator, can't return in function returns iterator value
std::find(begin(), end(), value) returns iterator , returns end() if value not found.  check say:
std::list<int> l; ... auto found = std::find(l.begin(), l.end(), 6); // returns std::list::iterator if (found == l.end()) {     std::cout << "bogus!" << std::endl; } ...   there other examples in container find returns value, , uses special value "not found"
std::string s = "go store"; auto found = s.find('x'); // returns size_t index string if (found == std::string::npos) {     std::cout << "bogus!" << std::endl; }   returning nullptr make sense if function returned pointer.  in case, nullptr reasonable sentinel value not found.
Comments
Post a Comment