Есть ли возможность сделать инициализацию 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
входит и завершающий нулевой символ, который тоже окажется в векторе.
Виртуальный выделенный сервер (VDS) становится отличным выбором
сколка времени надо на чтение числа scanf c++?
Доброго времени суток! У меня есть класс для хранения двусвязного списка (аналог std::list), мне нужно написать класс-итератор перебирающий элементы...