Есть ли возможность сделать инициализацию vector<char>
из строки одной строкой кода?
Я делаю так:
vector<char> vec;
string str = "To travel you need a wish and your passport";
for (auto it : str)
{
vec.push_back(it);
}
Но хотелось бы узнать более изящный способ.
string str = "To travel you need a wish and your passport";
vector<char> vec(str.begin(),str.end());
Годится?
Можно также
vector<char> vec(begin(str),end(str));
или, еще лучше,
vector<char> vec(cbegin(str),cend(str));
Эти варианты (begin/end
и cbegin/cend
, но не str.begin()
и str.end()
) сработают и для предложенного @Abyx
constexpr char str[] = "...";
но в этом случае нужно не забывать о том, что в str
входит и завершающий нулевой символ, который тоже окажется в векторе.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
сколка времени надо на чтение числа scanf c++?
Доброго времени суток! У меня есть класс для хранения двусвязного списка (аналог std::list), мне нужно написать класс-итератор перебирающий элементы...