![]() |
1
10
如果你能改变
您将有额外的好处,能够填充所有类型的数据结构,如
等。 编辑 (见注释…)
或者使用包装函数
我更喜欢第一个版本的性能(和其他)的原因。。。 |
![]() |
2
15
|
![]() |
3
8
|
![]() |
4
3
|
![]() |
5
2
|
![]() |
6
1
你能做到的
然后继续复制:
|
![]() |
7
0
递归函数必须多次复制所有内容,精确地说是O(深度)(即:叶级的所有内容都将被一次又一次地复制,直到到达根级)。 最好的方法是将其分成两个不同的函数:
|
![]() |
8
0
|
![]() |
9
-1
这可能不是最简单的解决方案,但是做一些与C#的StringBuilder等价的事情怎么样?
制造
如果你必须在最后有一个单独的向量,你可以,一旦做了一个新的向量,分配它足够大,这样它就不需要调整大小,然后组装你的成品。 或者,您也可以创建一个新类(如果需要,它派生自vector<T>)并在内部使用列表<向量<T>&燃气轮机;存储元素。然后,您只需让迭代器遍历第一个列表中的元素,然后当它到达末尾时,转到下一个列表中的元素,当您到达最后一个列表的末尾时,只返回container::end。 |
![]() |
10
-1
我知道这并不能直接回答您的问题,但是关于您的基本目标,您可能只需要在boost::filesystem方面重新实现您的函数。目录迭代器已经是递归的,所以您不需要自己进行递归调用。您可以简单地在迭代器上的循环中填充一个列表。有一个ls的示例实现: http://www.boost.org/doc/libs/1_43_0/libs/filesystem/example/simple_ls.cpp 您还可以从(理论上)平台独立性、相对广泛的采用(随着采用率的提高,bug被更快地发现)等方面获得额外的好处 |
|
wavesinaroom · 断言结构向量长度 5 月前 |
![]() |
Amarth Gûl · 找到一组向量的最近收敛点 5 月前 |
![]() |
P_B · 如何从矩阵中减去均值向量 10 月前 |
![]() |
TheEagle · 根据迭代器的顺序向前或向后迭代 10 月前 |
![]() |
Mary Ann Moody · 如何创建一个包含2个元素的向量? 11 月前 |
![]() |
Chris · 如何在OpenSCAD中的FOR循环中成对创建矢量元素 1 年前 |