C++ 具有c++/促进
我想做下一棵树:C++ 具有c++/促进,c++,boost,C++,Boost,我想做下一棵树: 1 1.1 1.2 1.1.1 1.1.2 1.2.1 1.2.2 1.1.1.1 1.1.1.2 1.2.
1
1.1 1.2
1.1.1 1.1.2 1.2.1 1.2.2
1.1.1.1 1.1.1.2 1.2.2.1 1.2.2.2
最后,我列出了所有索引的最终级别,如下所示(无序):
如何使用boost库以这种方式进行索引并按如下方式对它们进行排序:
1.1.1.1
1.1.1.2
1.1.2
1.2.1
1.2.2.1
1.2.2.2
如果您真的认为需要使用Boost,那么最明显的方法就是使用Boost。然而,老实说,这有点像用核武器杀死蚊子 第一部分是一个简单的二叉树,它甚至不需要平衡,所以它只是在适当的地方遍历和插入项的问题。获得结果同样简单——遍历树,并在且仅当它是叶时向输出中添加节点
对结果进行排序需要
std::sort
以及比较每个项目中各个元素的比较函数。如果你确定每个元素都只有一个位数,您可以使用简单的词法比较。您具体有什么问题?我只是在阅读boots的手册。那么,如何以这种形式进行索引,以及之后如何对这种索引进行排序。问题是如何使用std::sort对这种索引进行排序。@user1310873:正如我所说,您基本上需要将字符串分成几段(以“.”分隔),将每段转换为一个数字,然后比较这些数字。正如我也说过的,如果每一段都是一个数字,你可以只做一个普通的字符串比较(但你可能不希望这样,因为如果你得到一个两位数的数字,它会断开)。好吧,我意识到如果我将0添加到索引中,那么我可以像其他索引一样对它们进行排序。1111 1112 1120 1210 1221 1222
1.1.1.1
1.1.1.2
1.1.2
1.2.1
1.2.2.1
1.2.2.2