Я пишу класс, который содержит коллекцию дочерних объектов одного и того же класса, и хотел бы итерацию, и индекс, через них, используя стандартные предоставленные функции вместо функций, таких как: first()
, next()
, previous()
, last()
, getchild(x)
и т.д. .Какие функции я должен реализовать, чтобы сделать класс итерабельным?
В C++ 14, какие функции я должен реализовать, чтобы сделать класс итерабельным/индексируемым во всех случаях?
Функции:
begin()
cbegin()
rbegin()
crbegin()
end()
cend()
rend()
crend()
приходит на ум, хотя, вероятно, не обязательно все из них должны быть реализованы. Кроме того, возможно (для удобства программиста):
size()
empty()
Существуют ли какие-либо другие функции, которые я должен реализовать, как предварительно увеличения/уменьшения или после увеличения/уменьшения и массива или это действительно просто begin()
и end()
и их варианты?
Перегруженные операторы '++, -, +, -' – Steephen
Я не думаю, что существует «итерируемая» концепция, так что это в значительной степени зависит от вас. Существует концепция [Контейнер] (http://en.cppreference.com/w/cpp/concept/Container) и несколько итераторов. – juanchopanza