gpt4 book ai didi

c++ - 整个范围内 std::for_each 没有方便的重载?

转载 作者:行者123 更新时间:2023-12-04 08:28:03 24 4
gpt4 key购买 nike

为什么 std::for_each 或任何其他类似形式的 std::algorithm 函数没有重载,例如:

template<class Container, class UnaryFunction>
UnaryFunction for_each(Container c, UnaryFunction f);
那基本上只是做:
template<class Contianer, class UnaryFunction>
UnaryFunction for_each(Container c, UnaryFunction f){
return std::for_each(c.begin(), c.end(), f);
}
在我看来,我经常在一个容器的整个范围内使用这些类型的函数,并且键入以下内容似乎不方便,尤其是对于长容器名称:
std::for_each(myLongContainerNameThatIsLong.begin(), myLongContainerNameThatIsLong.end(), f);
是否有任何我遗漏的细节可以防止这种情况发生,或者某种机制来获得我想要的签名?

最佳答案

不,没有根本原因你不能这样做,事实上,从 C++20 开始,你可以用 std::ranges::for_each 做到这一点。 :

std::ranges::for_each(myLongContainerNameThatIsLong, f);

关于c++ - 整个范围内 std::for_each 没有方便的重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65163406/

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