input_iteratorRead values with forward movement. These can be incremented, compared, and dereferenced.
output_iteratorWrite values with forward movement. These can be incremented and dereferenced.
forward_iteratorRead or write values with forward movement. These combine the functionality of input and output iterators with the ability to store the iterators value.
bidirectional_iteratorRead and write values with forward and backward movement. These are like the forward iterators, but you can increment and decrement them.
random_iteratorRead and write values with random access. These are the most powerful iterators, combining the functionality of bidirectional iterators with the ability to do pointer arithmetic and pointer comparisons.
reverse_iteratorEither a random iterator or a bidirectional iterator that moves in reverse direction.

Crawling through a file system

  1. How can we use C++ iterators to infiltrate a system, traverse the filesystem and exfiltrate what we need, and close the backdoor without detection?



A vector in C++ is a dynamically resizable array that, when overloaded, can cause a massive performance hit.

Can you memoize vector operations?

c++ - Overloaded vector operators causing a massive performance reduction? - Stack Overflow


I tend to learn and grasp complex concepts by reading and, if not comprehending fast enough, then referencing video.