title: Difference between std::mutex lock function and std::lock_guard<std::mutex>?
body: <p>Basically, the title is self-explanatory.
  I use it in following way:</p>
  
  <ul>
  <li>The code is in Objective-C++.</li>
  <li>Objective-C classes make concurrent calls to different purpose functions.</li>
  <li>I use <code>std::mutex</code> to <code>lock</code> and <code>unlock</code> <code>std::vector&lt;T&gt;</code> editing option across entire class, as C++ std containers are not thread safe.</li>
  </ul>