gpt4 book ai didi

c++ - 替换 std::transform,插入到 std::vector

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:54 25 4
gpt4 key购买 nike

我希望以类似于 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 的方法将值插入到 std::vector 中?

最佳答案

您不需要预先调整要用变换填充的 vector 的大小。使用 std::back_inserter它的作用类似于 vector 的迭代器,但实际上会调用 push_back() 将元素插入 vector 中。

所以你的代码看起来像

std::vector<int> new_args;
new_args.reserve(args.size); // use this so you don't have grow the vector geometrically.
std::transform(args.begin(),args.end(),std::back_inserter(new_args),transformers());

关于c++ - 替换 std::transform,插入到 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33522742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com