<p>I want to insert something into a STL list in C++, but I only have a reverse iterator. What is the usual way to accomplish this?</p>

<p>This works: (of course it does)</p>

<pre><code>std::list&lt;int&gt; l;
std::list&lt;int&gt;::iterator forward = l.begin();
l.insert(forward, 5);
</code></pre>

<p>This doesn't work: (what should I do instead?)</p>

<pre><code>std::list&lt;int&gt; l;
std::list&lt;int&gt;::reverse_iterator reverse = l.rbegin();
l.insert(reverse, 10);
</code></pre>

```
l.insert(reverse.base(), 10);
```
will insert '10' at the end, given your definition of the 'reverse' iterator. Actually,
```
l.rbegin().base() == l.end()
```
.