diff --git a/include/rusty_iterators/file_iterator.hpp b/include/rusty_iterators/file_iterator.hpp index cc10a9a..e4a9649 100644 --- a/include/rusty_iterators/file_iterator.hpp +++ b/include/rusty_iterators/file_iterator.hpp @@ -44,24 +44,25 @@ class FileIterator fileLines.push_back(std::move(nextLine)); } is.close(); + ptr = fileLines.begin(); }; auto next() -> std::optional { - [[unlikely]] if (ptr == fileLines.size()) + [[unlikely]] if (ptr == fileLines.end()) { return std::nullopt; } - auto line = fileLines.at(ptr); + auto line = *ptr; ptr += 1; return std::move(line); } - [[nodiscard]] auto sizeHint() const -> std::optional { return fileLines.size(); } + [[nodiscard]] auto sizeHint() const -> std::optional { return fileLines.end() - ptr; } private: - size_t ptr = 0; std::vector fileLines{}; + std::vector::iterator ptr; }; template <>