因为在项目中需要保存多级目录结构,便构造了一个简易的多叉树,以下是代码(简单的测试而已) #include <map> #include <string> #include <algorithm> using namespace std; template <typename NodeDataType> struct mtree // 多叉树 { typedef map<NodeDataType, mtree> entries; entries sub; }; typedef mtree<string> dir; typedef dir::entries dir_entries; typedef dir_entries::value_type dir_entry; void enum_dir(dir_entry &p) { printf("%s/n", p.first.c_str()); for_each(p.second.sub.begin(), p.second.sub.end(), enum_dir); } int main(int argc, char* argv[]) { dir_entry root("1", dir()); dir_entries &s = root.second.sub; s["1.1"]; s["1.2"]; dir_entries &ss = s["1.2.3"].sub; ss["1.2.3.1"]; ss["1.2.3.2"]; enum_dir(root); return 0; }