Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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++_Sorting - Fatal编程技术网

C++ 读取文本文件后对其进行排序?

C++ 读取文本文件后对其进行排序?,c++,sorting,C++,Sorting,我有一个文本文件,其中包含如下值: 30 Text 21 Text 12 Text 1 Text 3 Text 我想将其读入一个2D数组,以将数字和文本标识符保持在一起。一旦我这样做了,我想把它按升序排序,因为文本文件将被取消排序 什么是C++中最好的方法,我应该把它放在数组中吗?我的目标是从文本文件中获取前3个最高值。是否有一种数据结构更适合这种情况,或者有一种更好的方法?无论如何,我都可以构造文本文件,如果需要更改的话,它不是一个具体的格式 TIA如果您只需要前三个值,最有效的方法可

我有一个文本文件,其中包含如下值:

30 Text
21 Text
12 Text 
1  Text
3  Text
我想将其读入一个2D数组,以将数字和文本标识符保持在一起。一旦我这样做了,我想把它按升序排序,因为文本文件将被取消排序

什么是C++中最好的方法,我应该把它放在数组中吗?我的目标是从文本文件中获取前3个最高值。是否有一种数据结构更适合这种情况,或者有一种更好的方法?无论如何,我都可以构造文本文件,如果需要更改的话,它不是一个具体的格式


TIA

如果您只需要前三个值,最有效的方法可能是定义三个变量(或三元素数组),逐行读取文件,如果新读取的行属于前三个,则将其放在那里


但是如果您想使用容器,我会使用
std::vector
并使用
std::sort
,假设文件足够小,所有数据都可以放入内存中。

我更愿意将它们放入std::map(如果您有唯一的键,如果没有,则使用std::multimap。)以便在将数据插入map时,他们总是被分类的。如果你想得到3个最高的值,只需要得到地图的前3项。

请看这个问题如果只需要前3个值,std::partial_排序可能会更好。