Класс list: доступ к элементам

Для доступа к элементам списка предназначены следующие методы (обратите внимание: получить доступ к элементу списка по индексу нельзя):

  • front() — возвращает ссылку на первый элемент. Метод позволяет как получить значение, так и изменить его. Прототипы метода:
reference front();
const_reference front() const;
  • back() — возвращает ссылку на последний элемент. Метод позволяет как получить значение, так и изменить его. Прототипы метода:
reference back();
const_reference back() const;

Пример:

std::list<int> arr = {1, 2, 3};
arr.front() = 55;
arr.back() = 88;
std::cout << arr.front() << std::endl; // 55
std::cout << arr.back() << std::endl;  // 88
  • begin(), end(), cbegin(), cend(), rbegin(), rend(), crbegin() и crend() — возвращают итераторы (см. разд. 16.1.1). Изменим и выведем значение первого элемента:
std::list<int> arr = {1, 2, 3};
std::list<int>::iterator it = arr.begin();
std::cout << *it << std::endl; // 1
*it = 0;
std::cout << *it << std::endl; // 0

Вместо методов begin() и end() можно воспользоваться одноименными функциями. Выведем значение последнего элемента:

std::list<int> arr = {1, 2, 3};
std::list<int>::iterator it = std::end(arr);
std::cout << *(--it) << std::endl; // 3

Обратите внимание: итераторы списков не поддерживают операторы + и -. Для перемещения итератора нужно использовать операторы ++ и -- или функцию advance(). Пример доступа к третьему элементу списка:

std::list<int> arr = {1, 2, 3, 4, 5};
std::list<int>::iterator it = arr.begin();
std::advance(it, 2);
std::cout << *it << std::endl; // 3

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов