Код: Выделить всё
#include
#include
#include
using namespace std;
using namespace filesystem;
struct fileInfo {
public:
path name;
path dir;
size_t size;
fileInfo(path _filename, path _fileDir, size_t _fileSize) {
name = _filename;
dir = _fileDir;
size = _fileSize;
}
};
enum NDS {name, dir, size};
const map byteSuffixes = {
{0, "bytes"},
{1, "KB"},
{2, "MB"},
{3, "GB"},
{4, "TB"}
};
void vectorSort(vector &_v, const NDS _sortby) {
vector res;
map fileSizes;
map
fileNames;
map fileDirectories;
for (const fileInfo _f : _v) {
fileSizes.insert({_f.size, _f});
fileNames.insert({_f.name, _f});
fileDirectories.insert({_f.dir, _f});
}
switch (_sortby) {
case NDS::name: {
for (const auto name : fileNames) {res.push_back(name.second);}
break;
}
case NDS::dir: {
for (const auto directory : fileDirectories) {res.push_back(directory.second);}
break;
}
case NDS::size: {
for (const auto size : fileSizes) {res.push_back(size.second);}
break;
}
default:
break;
}
_v = res;
}
void clearFile(const string filename) {
fstream dump(filename);
if (dump.is_open()) {
dump.ignore(2);
} else {
cout initDir;
if (!filesystem::exists(path(initDir))) {
cout longestDirName) ? parentDir.string().length() : longestDirName;
}
}
} catch (const filesystem_error& e) {
cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79770097/how-do-gcc-optimisations-work-under-the-hood[/url]