string a[] = {"00", "11", "22"};
list<string> list_1(a, a+3);
Множество вариантов:
// #include <iterator>
list<string> list_2;
copy(list_1.begin(), list_1.end(), std::back_inserter(list_2));
или
list<string> list_2(list_1.begin(), list_1.end()); // range ctor
или
list<string> list_2(list_1); // copy ctor
или даже:
list<string> list_2;
list_2.assign(list_1.begin(), list_1.end()); // range assignment
или
list_2.insert(list_2.end(), list_1.begin(), list_1.end()); // range insert
или
vector<string> vec(list_1.size()); // pre-allocating ctor
copy(list_1.begin(), list_1.end(), vec.begin());
или
vector<string> vec;
// ....
vec.clear();
vec.resize(list_1.size()); // pre-allocate existing vector
copy(list_1.begin(), list_1.end(), vec.begin());
Возможности ... бесконечны