Нет ничего волшебного в итераторах, которые вы найдете в контейнерах STL (например, vector
). Они сами классы; обычно подклассы для этого конкретного контейнера. В вашем примере vector
it
является экземпляром класса vector<float>::iterator
.
Если вы посмотрите в файл STL <vector>
, вы обнаружите что-то вроде (без всех шаблонов и тому подобного):
class vector
{
....
class iterator
{
....
};
};
Каждый контейнер будет иметь свою собственную реализацию, так как итератор нуждается вести себя по-разному для каждого контейнера. Например, вектор хранится в виде непрерывного массива данных, поэтому p++
в вашем итераторе прекрасно работает для увеличения, в то время как связанный список будет иметь что-то вроде p = p->next
для выполнения увеличения.
Вероятно, ваш учитель хочет, чтобы вы поместили этот код итератора в ваш класс, и затем код, выполняющий итерацию по вашему вектору, будет выглядеть как пример.
Nevermind. "Отказ длины" просто указывает, что приблизительно половина времени продолжительность ответа отличалась.
, Так как контенты являются динамическими, это - вероятно, идентификатор сессии или что-то как этот.