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被更快地发现)等方面获得额外的好处 |
llewmills · 根据数字是否为整数过滤数值向量[重复] 2 年前 |
Rocket Procd · 在c中向向量插入元素++ 2 年前 |
Daniel · 为什么我不能手动定义模板参数? 2 年前 |
Swantewit · 将数组值推送到Rust中的向量 2 年前 |
Giffyguy · 如何限制在构造向量后调用'resize()'? 2 年前 |
clarkk · 当声明向量时,(1)是什么意思? 2 年前 |
Loui Augst · 仅在局部X轴上将游戏对象指向另一个对象 2 年前 |
F.A. · 从int向量中附加整数的字符串不会打印任何内容 2 年前 |