Iterator types in C++ define how iterators access elements in a container. The most common types are:
In most cases, using auto
for the return type of begin()
and end()
is sufficient. However, if you need to specify the type explicitly, you can use the iterator type provided by the container. Here's how to do it with std::vector
:
#include <vector>
#include <string>
class Player {
public:
Player(std::string Name) : mName(Name) {}
std::string GetName() const { return mName; }
private:
std::string mName;
};
class Party {
public:
void AddMember(const std::string& NewMember) {
PartyMembers.emplace_back(NewMember);
}
std::vector<Player>::iterator begin() {
return PartyMembers.begin();
}
std::vector<Player>::iterator end() {
return PartyMembers.end();
}
private:
std::vector<Player> PartyMembers;
};
int main() {
Party MyParty;
MyParty.AddMember("Legolas");
MyParty.AddMember("Gimli");
MyParty.AddMember("Frodo");
for (const auto& Player : MyParty) {
std::cout << Player.GetName() << '\n';
}
}
Legolas
Gimli
Frodo
Answers to questions are automatically generated and may not have been reviewed.
Learn to implement iterators in custom types, and make them compatible with range-based techniques.