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_排序可能会更好。