| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > STL и поиск создание |
| Автор: in550 9.8.2007, 11:05 | ||
У меня есть список. Мне необходимо создать папку с именем одного из элементов, который будет найден. Если элемент не найден, то папка не создается.
|
| Автор: akizelokro 9.8.2007, 12:07 |
| Не просёк чего-то. = сижу в недоумках (недоумении). При данном условии "b" как раз и не найдено (==primer.end()). по второй части тоже недопонимание. предположим, что условие поправишь. но тогда ты явно знаешь, какой элемент там будет (который будет равен "b"). В чем проблема-то? Хочешь намотать проверку на значение элемента, чтобы в нем были только символы, разрешенные файлсистемой? |
| Автор: korbian 9.8.2007, 13:30 | ||
| in550, тебе нужен функтор примерно такой
PS: не компилировал |
| Автор: Любитель 9.8.2007, 13:44 |
| korbian, во-первых с функторами юзается find_if, а во вторых обычный финд как раз оператором = и сравнивает. Вообще не понял вопроса изначального, если честно |
| Автор: korbian 9.8.2007, 13:55 |
| Любитель, прям в точку. я find_if и подразумевал, но опечатался (жаркая пора, сдачи). |
| Автор: akizelokro 9.8.2007, 14:15 |
| А так не прокатит? void myFunc(std::string& sf ) { std::list<std::string> someList; // инициализация списка. Здесь будет город заложён. std::list<std::string>::const_iterator it = std::find(someList.begin(), someList.end(), sf); if(it == someList.end()) { // Дома нету никого! Заходите в понедельник. } else { // нашлась крокозябра! Тут мы её и... } } Наскока знаю, функторы или предикаты неплоха зажигают, когда условие сравнения достаточно нестандартное. А тут все просто. И если вопрос только в этом, то лучше автору порекомендовать ссылку на учебник. Угу? |
| Автор: korbian 9.8.2007, 14:25 |
| ИМХО, функторы универсальней. |
| Автор: akizelokro 9.8.2007, 14:32 |
| Кстати, мона пофилосовствовать на тему, что извратно понимаемая "универсальность" и обьектно-ориентированная парадигма приводят к распуханию кода и тык дыкс по списку. Искренне ваш вобло и зебро, |
| Автор: korbian 9.8.2007, 14:43 |
| akizelokro, возможно вы правы. |
| Автор: gif0 20.12.2009, 23:07 | ||
in550, find вернет итератор на найденные элемент. Т.к. итератор - это указатель, то можно получить доступ к элементу, на который указывает этот итератор использую оператор "*":
Протестить это дело не было времени, но все должно быть более-менее компилирующееся. |