Make SingleLinkedList.h self-sufficient
The file can be made self-sufficient by #includeing the following header files:
<memory>forstd::unique_ptrandstd::make_unique.<algorithm>forstd::find.<utility>forstd::move.<stdexcept>forstd::out_of_rangeandstd::invalid_argument.<string>for constructingstd::stringobjects used when constructing instances ofstd::out_of_rangeandstd::invalid_argument.<iterator>forstd::forward_iterator_tag.<cstddef>forstd::ptrdiff_t.
One trick to detect such issues is to make it the first #include file in main.cpp.