假设我有一个包含由空格分隔的数字的字符串。我想将数字插入整数向量中,其中每个数字减一。例如:
"1 2 3 4" -> {0, 1, 2, 3}
现在计划是std::transform
与 a 结合使用std::istream_iterator<int>
,如下所示:
std::istringstream source{"1 2 3 4"};
std::vector<int> target;
std::transform(std::istream_iterator<int>(source),
std::istream_iterator<int>(),
std::begin(target),
[](int a) {
return a-1;
}
);
不幸的是,这不起作用,因为std::transform
期望target
已经是正确的大小。所以我必须做
std::vector<int> target(4);
现在我有两个问题。如何target
事先动态找到合适的尺寸?有没有更优雅的方式来实现实际目标?