关于在 C++ 中的集合 STL 中存储文件路径

Regarding Storing file path in set STL in c++

我想存储目录和其中包含的文件。但是我无法对 SET STL 使用 insert 函数。我想忽略由于同一位置有多个文件而出现的重复目录。下面是代码片段。我在插入函数时出错。

   using path_1 = std::string; 
    using paths_1 = std::set <path_1>;

 void search()
  { 
      for (recursive_directory_iterator i("."), end; i != end; ++i)
      {
       if (!is_directory(i->path()))
       {

        paths_1.insert(i->path().parent_path());
        std::cout << i->path().parent_path() << "\n";
       }
        if (!is_directory(i->path()))
       {
        files.push_back(i->path().filename());
        // std::cout << i->path().filename() << "\n";

       }

      }

      for (auto f : files)
      {
       store_.save(f);
      }
}

你必须一个std::set,比如:

paths_1 my_paths;

然后你使用那​​个实例(不是类型本身):

my_paths.insert(i->path().parent_path());