Страницы

Поиск по вопросам

понедельник, 9 декабря 2019 г.

Как инициализировать vector<char> строкой?

#cpp


Есть ли возможность сделать инициализацию vector из строки одной строкой кода?
Я делаю так:

vector vec;
string str = "To travel you need a wish and your passport";
for (auto it : str)
{
    vec.push_back(it);
}


Но хотелось бы узнать более изящный способ.
    


Ответы

Ответ 1



string str = "To travel you need a wish and your passport"; vector vec(str.begin(),str.end()); Годится? Можно также vector vec(begin(str),end(str)); или, еще лучше, vector vec(cbegin(str),cend(str)); Эти варианты (begin/end и cbegin/cend, но не str.begin() и str.end()) сработают и для предложенного @Abyx constexpr char str[] = "..."; но в этом случае нужно не забывать о том, что в str входит и завершающий нулевой символ, который тоже окажется в векторе.

Комментариев нет:

Отправить комментарий