gpt4 book ai didi

c++ - 多少 STL 是太多了?

转载 作者:可可西里 更新时间:2023-11-01 18:41:19 24 4
gpt4 key购买 nike

<分区>

我在 std::for_eachbind 等方面使用了很多 STL 代码,但我注意到有时 STL 用法不是个好主意。

例如,如果您有一个 std::vector 并且想对 vector 的每个项目执行一个操作,您的第一个想法是使用它:

std::for_each(vec.begin(), vec.end(), Foo())

又优雅又ok,有一段时间了。但是随后出现第一组错误报告,您必须修改代码。现在你应该添加参数来调用 Foo(),所以现在它变成了:

std::for_each(vec.begin(), vec.end(), std::bind2nd(Foo(), X))

但这只是临时解决方案。现在项目日趋成熟,您对业务逻辑的理解也更好了,您希望对代码进行新的修改。正是在这一点上,你意识到你应该使用旧的好:

for(std::vector::iterator it = vec.begin(); it != vec.end(); ++it)

这是否只发生在我身上?您在代码中识别出这种模式吗?您在使用 STL 时遇到过类似的反模式吗?

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