Key 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 and iterators do not use new and delete; use…