提升文件系统,需要帮助了解我在做什么
Boost FileSystems, need help understanding what I'm doing
大约一年前,我使用boost文件系统编写了一个程序,现在我试图回去使用它作为参考,但我不确定代码到底是怎么回事,以及是否有更好的方法。
这是我为遍历目录所做的工作。
vector <directory_entry> entry;
copy(directory_iterator("path"), directory_iterator(), back_inserter(entry));
这为我提供了一个向量,其中包含"路径"目录中所有文件和目录的目录条目
然后我会使用 is_regular_file将它们分类为两个路径向量,一个用于文件,一个用于目录。
我正在使用openAL,我必须进行这种类型的转换才能使事情正常工作。
path fp = file[0]; //file a vector of directory_entry
string fps = fp.string();
buffer[0] = AlutCreateBufferFromFile(fps.c_str());
这奏效了,但我认为这一切一定不是很正确,我如何使用它。 无论如何,我只是想看看是否有人可以给我一点建议。
你的代码看起来是正确的。
您可以避免使用几个变量声明,如下所示:
buffer[0] = AlutCreateBufferFromFile(file[0].string().c_str());
您还可以避免将目录条目复制到vector
并直接循环访问目录条目:
directory_iterator cur("path");
directory_iterator end;
while (cur != end)
{
path p = *cur;
... // use p
++cur;
}
在 C++11 中,您可以使用 lambda 进一步改进循环:
for_each(directory_iterator("path"), directory_iterator(), [](const path& p)
{
// use p
});
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 正在尝试了解输入验证循环
- 什么时候在C++中返回常量引用是个好主意
- 您好,我实际上想了解以下代码.有人可以详细说明代码它到底在做什么吗?为什么它会在第 31 行崩溃
- Rand() 没有显示随机数,请帮助我了解出了什么问题:)
- 关于内存泄漏,我有什么不了解的
- 了解什么是原子约束
- Eclipse CDT 不了解方法定义是什么
- 了解发送方对象类型的最佳方法是什么
- 不了解什么是内部数组
- 提升文件系统,需要帮助了解我在做什么
- 关于在Visual Studio 2010中使用strcpy(),我有什么不了解的?
- 了解QObject名称是否已更改的最佳方法是什么
- 什么是我不了解getline+字符串
- 试图了解我的泡沫排序方法有什么问题