【发布时间】:2016-02-04 23:59:52
【问题描述】:
我希望以类似于 std::transform 的方式将值插入到 std::vector 中。 std::transform 需要一个预先确定大小的第三个参数,但在我的情况下,大小取决于 transformers() 并且不可预测。
...
// std::vector<int> new_args(); <-- not working
std::vector<int> new_args(args.size());
std::transform(args.begin(),args.end(),new_args.begin(),transformers());
是否有一种 std:transform-ish 方式将值插入到 std::vector 中?
【问题讨论】:
-
This 可能会有所帮助
-
大小如何取决于
transformers?你做某种过滤吗?如果是这样,你怎么知道是否有东西被过滤了?请澄清。 -
std::vector<int> new_args();声明一个函数(最麻烦的解析),它应该是std::vector<int> new_args;或std::vector<int> new_args{};。 (然后std::back_inserter解决您真正的问题)。 -
@Karoly 是的,这是一种过滤。例如,如果 args[1].size()==1,则不应向 new_args 添加任何内容。
-
@user1587451:添加完整解释,也许还有代码。另外,搜索
transform_if(不是标准的一部分)。
标签: c++ c++11 stl stl-algorithm