Как создать список объектов/структур в C++?
Имеется такая ситуация:
~/workdir # ls
srwxrwxrwx mysocket.sock
brwxrwxrwx my_null
drwxrwxrwx mydir
-rwxrwxrwx myfile.bin
prwxrwxrwx mypipe
lrwxrwxrwx mylink -> myfile.bin
~/workdir # cat ../main.cpp
#include <filesystem>
#include <string>
using namespace std;
struct file {
string name;
unsigned int type;
}
int main() {
for (auto a : std::filesystem::directory_iterator("workdir")) {
string fpath = (a.path()).c_str();
string namefile = fpath.replace(fpath.find("workdir/"), 8, "");
static int filetype;
bool isfile = std::filesystem::is_regular_file(fpath);
if (isfile) {
int filetype = 1;
} else {
bool isdir = std::filesystem::is_directory(fpath);
if (isdir) {
int filetype = 2;
} else {
bool issock = std::filesystem::is_socket(fpath);
if (issock) {
int filetype = 3;
} else {
// Далее идёт проверка на иные типы файлов...
}
}
// И тут надо создать структуры.
}
}
return 0;
}
И вот проблема. Надо бы создать множество объектов. Но у меня цикл, а я не знаю, как создать структуру с именем переменной. Да, пусть структуры называются struct1, struct2, и т д - мне это по большому счёту неважно. Главное - создать множество структур. Список этих структур мне создать не проблема - можно сделать список имён структур в векторе, и затем уже к ним обращаться... Причём мне ещё нужно будет использовать информацию со структур. Ну т е:
.....
ofstream list_stream;
list_stream.open("output.txt", ios::out);
if (struct4.type==1) {
list_stream << struct4.name << " is regular file" << endl;
}
.....
Как это сделать?