title: Swap neighbouring elements in std::list
body: <p>I want to change places of neighbouring elements in the <code>std::list</code></p>
  <p>Example of the list and values</p>
  <pre><code>A B C D E F G
  3 2 1 2 1 3 2
  </code></pre>
  <p>What I expect to receive after sorting:</p>
  <pre><code>A B D C F E G
  3 2 2 1 3 1 2
  </code></pre>
  <p>So, simple <code>A &gt; B</code> = nothing to do, but <code>C &lt; D</code> = swap them and go to <code>E</code> comparison.</p>
  <p>I have no idea about how to swap neighbor elements.</p>
  <p>So, I want to move forward to 1 step <code>good</code> elements</p>