错误来源于,用
fs::directory_iterator iter(folderPath), end;
然后for循环
for (; iter != iter_end; ++iter) {}
最开始没问题,后来说加个进度条,统计一下所有文件数量,用了std::distance先得出总的文件数量,然后for循环能给出一个进度。
int totalFiles = std::distance(iter, iter_end);
std::cout << " totalFiles is " << totalFiles << std::endl;
for (; iter != iter_end; ++iter) {}
奇怪的事情发生了
明明统计得到几百个文件,可是for循环一次都不进。
写了个测试代码:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 创建迭代器
auto beginIter = numbers.begin();
auto endIter = numbers.end();
// 计算距离
std::cout &