Мне нужно прочитать огромные строки строк от stdin
, поэтому время является критическим вопросом. Строки находятся на последовательных линиях и не имеют пробелов, поэтому я могу просто использовать while(cin>>str) { //code }
, но это очень медленно. Я слышал, что scanf намного быстрее, чем cin, но если я использую scanf("%s,str)
, я думаю, что str обрабатывается как char*
, а не C++ string
, поэтому я не могу использовать STL. Я мог бы принимать ввод как char * и копировать все символы в строку C++, но IMO, которая также будет медленной.Самый быстрый способ ввода огромных строк?
Есть ли способ получить ввод с помощью scanf или что-то еще, но в результате получить строку C++?
Профиль обоим, а затем решить. –
Строки STL имеют конструктор для генерации из строк C. –
не является сканированием, абсолютно занесенным в черный список как переполнение буфера verfire? –