行に正確に10語が含まれているかどうかを確認しようとしています。私がやった方法は、行のコピーを作成し、1つずつ抽出してカウンターをインクリメントすることです。10の場合は、行を操作します。しかし、これはすべての行に対して実行する必要があり、ほとんどの行が10ワードであるため、これは非常に非効率的だと感じています。だから私はこれを行うためのより効率的な方法を探しています。
while(getline(ifs, line)){
istringstream iss (line);
int s_counter = 0;
istringstream iss_copy = iss; //create a copy to test if there are 10 strings in a iss
string s;
while (iss_copy >> s){
++s_counter;
}
if (s_counter == 10){
while(iss>>word){
...//manipuate each word
}
}
}