title: Implementing depth-first-search in C++
body: <p>I'm learning about data structures and abstract data types, and I keep getting stuck on one question that keeps coming up.</p>
  
  <p>I don't understand how computer science can be 50 years old now (or older, I don't know exactly) and how data structures, ADTs, and algorithms can be such a foundational part of it all, yet still there is no standard to any of it.</p>
  
  <p>My question is actually pretty specific: I'm trying to implement depth-first-search in C++ in a way that can work on any native (built-in) data-type. My question is, where do I look first? I know the stack class from the STL can be used to implement the DFS algorithm, but is the STL the first place to look? Should I be implementing DFS from scratch, using a stack and what I know about implementing this algorithm? Or do professional programmers have a library they turn to when they need to pursue this kind of search?</p>
  
  <p>Please advise, this question isn't as concrete as I'd like it to be.</p>