Long term takeaways: test first, test during, test after; test, test, test when designing algorithms, demand the weakest iterators (e.g. bidirectional vs. random access) when designing containers, provide the strongest iterators (e.g. random access vs bidirectional) build adapters on top of containers always look for reuse and symmetry in your…