![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| daimon2005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2006 Репутация: нет Всего: нет |
Есть такой участок программы.
Вопрос такой, если 2 встречающихся символа есть то все нормально, а если нет, то в *p пишется случайное число, что делать? 1 1 2 3 4 5.... - YES 1 2 3 4 5 ... не идет |
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
в случае неуспеха возвращается итератор v.end(), где v - твой вектор
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
daimon2005, перед разыменованием итератора обязательно нужно проверить, не равен ли он s.end(). Код примерно такой:
-------------------- ... |
|||
|
||||
| daimon2005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2006 Репутация: нет Всего: нет |
Earnest, то есть явной проверки условия не требуется (*p!=0), а требуется только проверка конца контейнера, так ?
|
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
Отвечу за Earnest: именно так. А вообще, это стандартный прием STL.
|
|||
|
||||
| daimon2005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2006 Репутация: нет Всего: нет |
Спасибо за ответы и вопрос в тему - Где можно взять описание алгоритмов в виде справочника, типа
алгоритм - что делает.... Читаю M. Josuttis Стандартная библиотека С++. Но необходим именно сравочный материал. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Мне нравится книга Мейерса "Эффективное использование STL". А перечень алгоритмов с кратким описанием - MSDN.
Здесь ты проверяешь, что элемент, на который указывает итератор, не 0. А чего бы ему быть нулем, если в твоем массиве ни одного 0 нет? Кроме того, операция разыменования безопасна, только если итератор валидный, т.е. указывает внутрь последовател6ьности. end() указывает за конец, в данном случае массива. Т.е. там уже "чужая" память. В основном, все ищущие алгоритмы STL возвращают итератор на найденный элемент, в случае успеха, или конец диапазона. -------------------- ... |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Продаются так же хороший карманный справочник на русском языке (O'Really). Мне в своё время очень понравился. До сих пор пользуюсь.
|
|||
|
||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Это неплохой(в том числе и)справочный материал -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |