Мне нравится это предложение для создания нового списка.
std::list<SomeType> myList(v.begin(), v.end());
Но при добавлении в существующий список следующее может быть оптимальным для небольших наборов данных. Под «оптимальным» я подразумеваю, что легче всего запомнить, как это сделать, и легче всего понять. (Это субъективные утверждения, я уверен, что это зависит от того, как устроен ваш мозг.)
for ( unsigned i=0; i<v.size(); i++ ) myList.push_back(v[i]);
Использование итераторов для векторов может быть чрезмерно педантичным во многих случаях. Простое индексирование обычно работает нормально.
Другой поток обращается к итераторам и индексам ( здесь ). В этой теме полученный ответ в основном предпочитал итераторы, потому что они более общие. Но если векторы являются наиболее часто используемым типом контейнера, я думаю, что целесообразно специализировать этот простой алгоритм.