用std::map构造高效多叉树

因为在项目中需要保存多级目录结构,便构造了一个简易的多叉树,以下是代码(简单的测试而已)

#include #include #include using namespace std; template struct mtree // 多叉树 { typedef map entries; entries sub; }; typedef mtree 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; } 

你可能感兴趣的:(each,测试)