![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Почему segmentation fault на последней строке? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Блин, ну конечно же:
Только надо будет перегрузить оператор =. Это сообщение отредактировал(а) Rickert - 20.7.2007, 06:54 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
а разве terms.end() указывает не на следующий после последнего элемент.. Мне кажется лучше так:
Это сообщение отредактировал(а) Lazin - 20.7.2007, 07:40 |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Твоя правда!
Это сообщение отредактировал(а) Rickert - 20.7.2007, 08:11 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
потому-что vector.end() указывает на следующий после последнего элемент, в STL итератор end() используется обычно в качестве NULL-pointer-a. Если нужен последний элемент, то back() - возвращает ссылку на него, а итератор:
|
||||
|
|||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Хорошо, тогда смотри так:
Почему в этом случае у меня всегда идёт указание на последний элемент? Это сообщение отредактировал(а) Rickert - 20.7.2007, 08:24 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
:(
Это сообщение отредактировал(а) Rickert - 20.7.2007, 08:36 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Потому что тело цикла исполняется только в том случае, если it != terms.end(), т.е. для it == terms.end() присваивание не выполняется. Подумайте, если вектор пуст, то присваивание не должно выполняться ни разу, так-как в этом случае terms.begin() == terms.end(). |
|||
|
||||
Rickert |
|
||||||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Lazin, он не пуст стопудово!
Нет, он выполняется до тех пор пока данное условие - true У меня ошибка в другом видать была. Смотри:
term.push_back(uTerminal()) отрабатывает два раза, а при третьей итерации цикла - выдаёт:
Это сообщение отредактировал(а) Rickert - 20.7.2007, 08:55 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||||
|
|||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Дело не в том - пуст или нет,
выдаст 9 а не 10. А зачем tff = &term.back(); в каждой итерации выполнять? Все итераторы - указатели на элементы вектора могут стать не действительными после добавления нового элемента в контейнер, может в этом дело? |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Ладно, короче. Лишний раз убедился, что лучше за 2 минуты напишу свой класс списка, чем буду колупаться с этим stl
![]() Всё равно, спасибо! -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
удачи и успехов в этом не легком труде - написаниии велосипедов. Разобраться в конструкциях языка и спецификации стандартной библиотки, понятно дело, лень. Бывает. А Lazin всё по делу говорил. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |