«Конвертировать» немного двусмысленно. Сначала подумайте о копировании. Поскольку list::size()
- это O (1) в C ++ 11, достаточно эффективный способ скопировать list<string>
в vector<string>
:
vector<string> vector_string;
vector_string.reserve(list_string.size());
vector_string.assign(list_string.begin(), list_string.end());
Если вам больше не нужен list_string
, вы можете повысить эффективность (при условии достаточно больших строк, требующих выделения кучи), используя std::move_iterator
, например:
vector<string> vector_string;
vector_string.reserve(list_string.size());
vector_string.assign(move_iterator(list_string.begin()), move_iterator(list_string.end()));
, что позволит избежать дополнительных выделений кучи путем перемещения строк.