title: String Operation
body: <p>Can anyone explain the <code>auto update_width = [&amp;longest](string const&amp; curr){}</code>
  I was confused the way function declared and confused how function iterating data inside the file. File has a string of words and program finds the longest words which has most match of "aceimnorsuvwxz".</p>
  
  <pre><code>ifstream ifs("../data/letter.txt");
  if (!ifs) return -1;
  
  string longest;
  auto update_with = [&amp;longest](string const&amp; curr)
  {
      if (string::npos == curr.find_first_not_of("aceimnorsuvwxz"))
          longest = longest.size() &lt; curr.size() ? curr : longest;
  };
  for (string curr; ifs &gt;&gt; curr; update_with(curr));
  cout &lt;&lt; longest &lt;&lt; endl;
  
  return 0;
  </code></pre>