C++ 矢量下标超出范围 dirent

C++ Vector subscript out of range dirent

本文关键字:范围 dirent 下标 C++      更新时间:2023-10-16
public:vector<vector<string>> cont;
void memContent(string path, int f){
    DIR *dir;
    struct dirent *ent; int j = 0;
    if ((dir = opendir(path.c_str())) != NULL) {
        while ((ent = readdir(dir)) != NULL) {
            for (int i = 0; i < ext_no; i++)
            if (strstr(ent->d_name, ext[i].c_str()))
            {
                cont[f].push_back(ent->d_name);
            }
        }
        closedir(dir);
    }
}
main(){
for (int i = 0; i < f.dir_no; i++)
    f.memContent(f.dir[i], i);
}

我有一个矢量向量,它应该从多个文件夹中获取所有文件,但我不断收到有关向量大小的错误;顺便说一句:我使用"f"知道当前文件夹,并且我有其他向量的路径

在循环之前,您需要确保cont向量为每个目录包含一个向量:

cont.resize(dir_no)