我有一個包含數百萬行的主文件。然後,當從文件中讀取每行時,我需要在另一個文件中找到行少得多的行(僅數千行)來做出決定。目前,我正在使用vector來讀取第一個文件,然後對主文件中的每一行進行遍歷,以查找該行。問題是運行時間很長。是否有任何有效的方法來執行任務並將運行時間限制在一定的合理範圍內。在C++中用於非常大的輸入的文件中搜索字符串的有效方法
1
A
回答
0
1
你應該讀第二個文件到std::map<std::string,int>
。 Map鍵是行,值是在第二個文件中遇到的次數。檢查
這樣的時間,如果從第一個文件指定行在第二個發現是恆定的,和你的運行總時間應在磁盤驅動器的速度僅限於讀取第一大文件的內容。
0
您有一個內部循環,其中主文件在輔助文件線的電流線進行比較。 如果你採取一些堆棧樣本,你可能會在大部分時間內在內部循環中找到它。
你可能會考慮this technique,在那裏你你進行預處理輔助文件到一個專用的過程,你再編譯,並與主程序鏈接英寸 花費的時間將是讀取輔助文件的時間,然後按照一秒或兩秒的順序編寫特殊用途過程,然後編譯並鏈接整個過程。
然後你的主程序的運行應該是I/O密集型閱讀的主要文件,因爲內循環會快很多。
相關問題
- 1. 用python搜索大文件中字符串的更快方法
- 2. 在C中搜索字符串數組中的字符串的高效方法(不區分大小寫)
- 3. 在字符串列表中搜索字符串的最有效方法?
- 4. 在兩個給定的輸入文件中搜索常用字符串
- 5. 在文本文件中搜索字符串的更快方法
- 6. 搜索字符串中的一個大的CSV文件C#
- 7. 在C#中尋找非常大的項目的文本文件搜索算法
- 8. 在Python中輸入字符串中搜索輸入字符
- 9. 有效的輸入流到java中的字符串方法
- 10. C# - 從文件中輸入字符串的方法
- 11. C++從輸入的字符串搜索CSV文件
- 12. 在文件中搜索字符串的最快方法
- 13. 使用不同的方法非文字字符串在C#中
- 14. 在一組字符中搜索一個字符的有效方法C語言
- 15. 如何搜索文本文件中的字符串在C#中
- 16. 最有效的方法來搜索非常大的文本文件和輸出行匹配任何非常大量的術語到另一個文件
- 17. 更有效的方法來搜索window.location.href的字符串?
- 18. 在Python中搜索輸入字符串P2中的輸入字符
- 19. C#大寫首字母的字符串 - 更有效的方法?
- 20. 輸入字符串並在一個文件中搜索Python
- 21. 如何在java中使用特定格式在非常大的文件中搜索字符串?
- 22. 如何將在搜索欄中輸入的文本輸入到字符串中?
- 23. 在Python中搜索大型XML文件的更有效方式
- 24. 在C++中搜索並替換txt文件中的字符串
- 25. 在c中的文件中搜索字符串
- 26. 在文件夾中搜索字符串的所有文件
- 27. 如何在非常大的文件中搜索字符串和文本上下的文本
- 28. 在C++中實現大輸入矩陣的最有效方法?
- 29. 讀取文件並搜索用戶輸入的字符串
- 30. txt文件中的搜索字符串
是否有一些獨特的屬性,你可以歸於每一行?一些哈希?您可以使用哪些數據功能減少搜索空間?然後將較小的數據集加載到內存中進行處理?在算法上思考並思考經濟問題,因爲目前您對原始數據進行了'O(n * m)'搜索,而且效率不高。 –
最小的數據集作爲字符串向量存儲在內存中。數據集中的每一行都有四列。每列中的值可能有冗餘值,但組合是唯一的。 – Timir
通過比較字符串長度,您可能會贏得一噸。如果它們不相等,則字符串不相等,如果它們相等,則確切知道應該比較多少個字符。 – MSalters