【发布时间】:2014-04-26 19:34:20
【问题描述】:
我有一个充满整数的文件,已排序,我需要将文件的内容放到一个列表中。 文件看起来像这样:
1
4
45
150
245
365
我知道可以逐行读取并 push_back,但文件数超过 500 000 行,所以他们是一种快速的方法吗?
目标是查看文件中是否有整数,所以我需要转换为列表,然后进行 binary_search,如果您有更好的想法,我将不胜感激。
【问题讨论】:
-
取决于它是一次性搜索还是您想要多次执行的操作。
-
查看std::map 容器以利用其log n 搜索性能。然后想想如何使用每个整数作为键。该值可以是该键在文件中出现的次数。
-
文件中的整数是否已经排序?
-
因此,您实际上并不想要 std::list,而是 std::vector,最好是 std::unordered_list。
-
文件已排序;如示例所示
标签: c++ algorithm list binary-search