![]() |
1
7
编写实用函数并没有什么错,它将帮助您并使您的代码更干净。其他人也一样。 Boost library 是此类实用函数和类的最大集合。 更确切地说,C++标准明确建议扩展标准库(7.3.1.2/1):
|
![]() |
2
10
基于迭代器的算法。范围
|
![]() |
3
3
我认为这绝对是个好主意。C++ STL缺少很多Python/C程序员从标准库中得到的期望。如果您可以通过采用2-3行STL方法并使其成为单个函数来提高代码的可读性,请继续!
编辑:为了澄清,我建议您
|
![]() |
4
1
与此类似,在我当前的项目中,我们有一个名为:stlutils.h的文件,其中包含一些方法,例如contains()。实施方式:
|
![]() |
5
1
其他答案表明,可以编写实用函数来实现这一点,在需要的地方这是一个好主意。但是我想我应该指出一个重要的观点:STL是围绕算法效率而设计的。几乎所有使用STL的操作都有一个标准的big-O效率要求。
如果
所以我个人的观点是:学习STL提供的所有容器和特性,你会发现虽然它很简洁,但它鼓励一种更有效的编程风格。如果你问这个问题,如果你遗漏了什么,我会说是的-你想更仔细地考虑你使用的容器。我用
|
![]() |
6
1
我不太喜欢包装纸,但如果它们能帮你,那就去吧。我认为,随着时间的推移,您会发现除了std::vector之外,还需要将实用程序函数用于其他容器。最终您的实用程序函数变得非常通用,您可以直接使用std::find。 但是你确定你用的是正确的容器吗?set有一个count()方法,它本质上等同于contains()。它是O(log(n)),而不是O(n)。 |
|
Julia · 矢量中相加为总和S的值的数量 2 年前 |
![]() |
C_Rod · 在模板方法中确定STL容器中项目的数据类型 3 年前 |
![]() |
quantumwell · 将空向量放入std::map() 7 年前 |
![]() |
OutOfBound · 对未初始化内存使用算法的优点 7 年前 |
![]() |
DarthRubik · 在使用列表删除之后,迭代器如何不无效 7 年前 |