Created
November 22, 2018 11:13
-
-
Save daverigby/ec4912c48116c05c72402cd89bd4957e to your computer and use it in GitHub Desktop.
Checkpoint iterator model using raw reverse iterators (working)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <iostream> | |
| #include <vector> | |
| void print(const std::vector<int>& v) { | |
| std::cout << "["; | |
| for (auto& e : v) { | |
| std::cout << e << " "; | |
| } | |
| std::cout << "]\n"; | |
| } | |
| void getItemsForCursor(const std::vector<int>& v, std::vector<int>::reverse_iterator& rit) { | |
| do { | |
| rit--; | |
| std::cout << *rit << " "; | |
| } while (rit != v.rbegin()); | |
| std::cout << "\n"; | |
| } | |
| int main() { | |
| std::vector<int> v; | |
| // Initially populate with 2 elements | |
| v.push_back(1); | |
| v.push_back(2); | |
| v.push_back(3); | |
| print(v); | |
| // Creatre reverse_iterator to start (rend), advance backwards | |
| auto rit = v.rend(); | |
| std::cout << "Iterate 1:\n"; | |
| getItemsForCursor(v, rit); | |
| v.push_back(4); | |
| print(v); | |
| std::cout << "Iterate 2:\n"; | |
| getItemsForCursor(v, rit); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment