gpt4 book ai didi

c++ - Transform - 一种变异序列算法

转载 作者:太空狗 更新时间:2023-10-29 20:24:11 25 4
gpt4 key购买 nike

我知道C++中的transform算法是一种变异序列算法。但我从未见过有人使用 transform 来改变序列。每当我在互联网上搜索示例代码时,我得到的是使用类似于 for_each 算法的转换算法。

请提供链接或示例,我可以从中了解变异序列的性质。

编辑:当我浏览 This SO question. 时,我更加困惑了它说 for_each 是一个 non-modifying sequence 算法。所以我可以for_each修改元素而不是容器的结构。提供的答案不正确吗?如果for_each也可以修改元素,我们可以用transform替换for_each,就不需要for_each了算法,除了它的实现可能很简单。

最佳答案

变异序列算法意味着算法会改变(修改)它所工作的容器。在下面的示例中,std::vector 类型的容器 foo 被修改。

std::string s("hello");
std::vector<int> foo;
std::transform(s.begin(), s.end(), back_inserter(foo), ::toupper);
std::cout << std::string(foo.begin(), foo.end());

output是“你好”

这对于 std::for_each 是不可能的


是的,提供的答案对我来说听起来是正确的。还要检查 Nonmodifying Sequence Algorithms 的列表和 Mutating Sequence Algorithms在 C++ 中验证您的断言。

关于c++ - Transform - 一种变异序列算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342221/

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