在C++中将字符串转换为向量

Pat*_*ski 4 c++ string vector

是否可以在C++中轻松地将字符串转换为向量?

string s = "12345"
vector<int>(s.begin(), s.end(), c => c - '0'); // something like that
Run Code Online (Sandbox Code Playgroud)

目标是有一个像int的向量 { 1, 2, 3, 4, 5 };

我不想使用循环,我想写一个清晰简单的代码.(我知道下面会有一些循环).

字符串始终是一个数字.

Ami*_*ory 6

你可以先开始吧

string s = "12345"
vector<int> v(s.begin(), s.end())
Run Code Online (Sandbox Code Playgroud)

然后使用<algorithm>'s transform:

transform(
    s.begin(), s.end(), 
    s.begin(), 
    [](char a){return a - '0';});
Run Code Online (Sandbox Code Playgroud)

  • oneliner:`transform(s.begin(),s.end(),std :: back_inserter(v),[](char a){return a - '0';});` (2认同)