Оператор разыменования может быть определен для любого определенного типа использования путем перегрузки унарной функции operator*
.
Тип, возвращаемый veca.begin()
, является таким типом.Объект такого типа можно разыменовать с помощью оператора *
.
Итераторы, возвращаемые функциями-членами begin()
большинства контейнеров из стандартной библиотеки, поддерживают такую операцию.Следовательно, вы можете использовать:
std::vector<int> a = {10, 20, 30};
std::vector<int>::iterator iter = a.begin();
int item = *iter;
и
std::set<int> a = {10, 20, 30};
std::set<int>::iterator iter = a.begin();
int item = *iter;
и
std::map<int, double> a = {{10, 2.5}, {20, 5.8}};
std::map<int, double>::iterator iter = a.begin();
std::pair<int, double> item = *iter;