Create a C++ program that takes in a graph and performs a depth-first search on it. The program should be able to handle graphs of varying sizes and complexities. The output of the program should display the order in which the vertices were visited during the depth-first search. Additionally, the program should be clearly commented with appropriate variable names and follow good coding practices.
This prompt doesn't seem malicious.