как получить std :: list <std :: string> :: iterator для вывода значения ошибки? - PullRequest
2 голосов
/ 07 марта 2011

Я ищу в списке значений и хочу, чтобы он возвращал какое-то значение ошибки «по умолчанию», когда не может найти значение для поиска. Я не имею в виду std::cerr. я имею в виду значение, которое я могу использовать в моей программе, как bool. Однако, если он находит строку, мне нужно значение указателя, где она находится в строке. Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 07 марта 2011
typedef std::list<std::string> MyList;
MyList  mylist;
MyList::iterator iter = mylist.find("somestring");
if (iter != mylist.end() ) {
   // the string was found
} else {
   // the string was not found
}
4 голосов
/ 07 марта 2011

Идиоматический способ - вернуть итератор (не указатель) и вернуть конечный итератор, когда элемент не найден.

Но вам не нужно писать это, потому что <algorithm> уже содержит std::find.

...