Russian Qt Forum
Января 16, 2025, 19:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Что возвращает std::list::front()?  (Прочитано 3933 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Мая 12, 2010, 09:49 »

Не могу найти нормальный справочник по С++. на www.cplusplus.com описание list и его методов
Цитировать
      reference front ( );
const_reference front ( ) const;

Access first element
Returns a reference to the first element in the list container.
А что вернет метод front() у list, если список пуст?
Записан
SimpleSunny
Гость
« Ответ #1 : Мая 12, 2010, 10:13 »

Стандарт на этот счет ничего не говорит, поэтому реализация может отличаться от компилятора к компилятору.

Для gcc 3.4.2

Код
C++ (Qt)
     // element access
     /**
      *  Returns a read/write reference to the data at the first
      *  element of the %list.
      */

     reference
     front()
     { return *begin(); }

Т. е. вернуться может все что угодно.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Мая 12, 2010, 10:37 »

Ну понятно. перед этим empty() нужен.
Цитировать
Т. е. вернуться может все что угодно.
ну это лучше, чем неадекватное поведении. В Assistant-e хоть про такой случай словечко замолвили, хоть что-то понятно
Код:
T & QList::front ()
This function is provided for STL compatibility. It is equivalent to first(). The list must not be empty. If the list can be empty, call isEmpty() before calling this function.
Записан
alexman
Гость
« Ответ #3 : Мая 12, 2010, 14:14 »

Ну понятно. перед этим empty() нужен.
Цитировать
Т. е. вернуться может все что угодно.
ну это лучше, чем неадекватное поведении. В Assistant-e хоть про такой случай словечко замолвили, хоть что-то понятно
Код:
T & QList::front ()
This function is provided for STL compatibility. It is equivalent to first(). The list must not be empty. If the list can be empty, call isEmpty() before calling this function.

И так понятно, что если список может быть пуст, то сначала нужно проверить на пустоту!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 22.