( for( auto i : (collection, first_n) ).
Не могу уловить связь. Передаю в функцию вектор -> функция вызывает конструктор класса и передаёт итератор vec.begin() -> в for'e auto пробегается через ClassIter.begin() .. ClassIter.end(), в которых я просто передаю сохранённые конструктором указатели, но вместо это переменная auto в цикле берёт не итератор, а его разыменование. Почему?
По факту. Фича такая. Называется "range based for"
void TestModification() { vector<string> vs = {"one", "two", "three", "four", "five"}; for (auto p : Paginate(vs, 2)) { for (auto& word : page) { cout << word << " "; // Почему p - не итератор, а строка? Paginator.begin() возвр указатель! // почему word - char, а не string? } } } Что такое page ?
Обсуждают сегодня