<p>For a simple linked list in which random access to list elements is not a requirement, are there any significant advantages (performance or otherwise) to using <code>std::list</code> instead of <code>std::vector</code>?  If backwards traversal is required, would it be more efficient to use <code>std::slist</code> and <code>reverse()</code> the list prior to iterating over its elements?</p>

As usual the best answer to performance questions is to
profile
both implementations for your use case and see which is faster.
In general if you have insertions into the data-structure (other than at the end) then
```
vector
```
may be slower, otherwise in most cases
```
vector
```
is expected to perform better than
```
list
```
if only for
data locality issues
, this means that if two elements that are adjacent in the data-set are adjacent in memory then the next element will already be in the processor's cache and will not have to page fault the memory into the cache.
Also keep in mind that the space overhead for a
```
vector
```
is constant (3 pointers) while the space overhead for a
```
list
```
is paid for each element, this also reduces the number of full elements (data plus overhead) that can reside in the cache at any one time.