在对文件进行某些操作之前,我需要读取文件中的行数。当我尝试读取文件并在每次迭代时将line_count
变量增加直至到达EOF
时,这在我的情况下并不快速。我同时使用了ifstream
和fgets
,它们都很慢。是否有一种hacky的方法来做到这一点,比如被BSD、Linux内核或Berkeley DB使用的位操作方法。
该文件中的行数为数百万行,并且不断增加,每行大约有40或50个字符。我正在使用Linux。
注意:
我确信会有人说使用数据库,白痴。但是在我的情况下,我不能使用数据库。
std::count(buf.begin(), buf.end(), '\n')
替换CountLines
。 - utnapistim