title: Partial match for the key of a std::map
body: <p>I have an <code>std::map</code> and I want to search for a key using a substring. For example, I have the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;map&gt;
  #include &lt;string&gt;
  using namespace std;
  
  typedef std::map&lt;std::string, std::string&gt; TStrStrMap;
  typedef std::pair&lt;std::string, std::string&gt; TStrStrPair;
  
  int main(int argc, char *argv[])
  {
      TStrStrMap tMap;
  
      tMap.insert(TStrStrPair("John", "AA"));
      tMap.insert(TStrStrPair("Mary", "BBB"));
      tMap.insert(TStrStrPair("Mother", "A"));
      tMap.insert(TStrStrPair("Marlon", "C"));
  
      return 0;
  }
  </code></pre>
  
  <p>Now, I want to search for the position that holds the substring "Marl" and not "Marlon", if "Marla" is stored in the map. I want to find something that starts with "Marl". I need to find at most one position. Is this possible? If so, how? </p>
  
  <p>I don't want to use any Boost libraries!</p>