Разница между front () и begin () - PullRequest
       3

Разница между front () и begin ()

17 голосов
/ 16 февраля 2012

В чем разница между функциями front() и begin(), которые появляются во многих контейнерах STL?

Ответы [ 4 ]

22 голосов
/ 16 февраля 2012

begin() возвращает итератор, который можно использовать для итерации коллекции, а front() просто возвращает ссылку на первый элемент коллекции.

3 голосов
/ 16 февраля 2012

front() возвращает ссылку на первый элемент, begin() возвращает итератор к нему.

Обратите внимание, что вы не должны вызывать front для пустого контейнера, но нормально вызывать begin до тех пор, пока вы не разыменуете итератор, который возвращает begin.

1 голос
/ 16 февраля 2012

С http://www.cplusplus.com/reference/stl/vector/begin/ (буквально первый результат Google для "vector :: begin"):

Обратите внимание, что в отличие от элемента vector::front, который возвращает ссылку на первый элементэта функция возвращает итератор произвольного доступа.

0 голосов
/ 16 февраля 2012

Элемент front возвращает ссылку на первый элемент списка или вектора. Функция begin возвращает итератор (который больше похож на указатель), инициализированный для первого члена списка, карты или вектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...