Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有c++/促进_C++_Boost - Fatal编程技术网

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