ファイルを検索し、データと関連する行番号を提供する次のコードを使用しています。しかし、このコードは数十万行の場合に十分に高速ですか? 私のPCは文字通り数秒間フリーズしました。整数のペアを検索し、コンマの後に RHS 値を返す必要がありますが (いくつかの統計情報)、次のコードを使用すると、行全体を返すことができます。
split
関数を使用して返されたデータを解析し、RHS 値を取得することは、高速性の点で良い考えですか?
また
- LHS 引数に基づいて RHS 値を直接取得します。(まあ、私はこれを行うことができません)
上記の2つのいずれかを達成するために誰かが私を助けることができますか?
これが私のコードです:
#include <string>
#include <iostream>
#include <fstream>
int main()
{
std::ifstream file( "index_hyper.txt" ) ;
std::string search_str = "401" ;
std::string line ;
int line_number = 0 ;
while( std::getline( file, line ) )
{
++line_number ;
if( line.find(search_str) != std::string::npos )
std::cout << "line " << line_number << ": " << line << '\n' ;
}
}
index_hyper.txt
ファイルの内容は次のとおりです。
18,22
20,37
151,61
200,62
156,63
158,64
159,65
153,66
156,67
152,68
154,69
155,56
156,14
157,13
160,122
161,1333
400,455
401,779
402,74
406,71