На этом шаге мы рассмотрим функции обращения к элементам.
Поскольку списки не поддерживают произвольный доступ к элементам, для прямого обращения к элементам в них предусмотрены функции front() и back(), представленные в таблице 1.
Операция | Описание |
---|---|
c.front() | Возвращает первый элемент (без проверки его существования!) |
c.back() | Возвращает последний элемент (без проверки его существования!) |
Как и в предыдущих случаях, эти операции не проверяют наличие элементов в контейнере. Если контейнер пуст, их вызов приводит к непредсказуемым последствиям. Следовательно, перед вызовом функций необходимо убедиться в том, что контейнер содержит хотя бы один элемент. Пример:
std::list<Elem> coll; // Пустой список! std::cout << coll.front(); // ОШИБКА ВРЕМЕНИ ВЫПОЛНЕНИЯ if (!coll.empty()) { std::cout << coll.back(); // OK }
На следующем шаге мы рассмотрим функции получения итераторов.