0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
|
||||||
1 | ||||||
scanf и printf или cin и cout19.07.2013, 11:10. Показов 5361. Ответов 19
Метки нет (Все метки)
Скажите пожалуйста,что предпочтительнее использовать на олимпиадах по программированию да и вообще : scanf и printf или cin и cout
В большинстве авторских решений задач, и решений самих олимпиадников используется scanf и printf. Но я давно выучил cin и cout и не хочу менять ничего.
0
|
19.07.2013, 11:10 | |
Ответы с готовыми решениями:
19
Заменить cin / cout на scanf / printf Отличие printf/scanf от cout/cin Заменить cin cout на printf scanf Замена printf на cout и scanf на cin |
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 11:19 | 2 |
wwmwwm, ну вообще scanf/printf используют для скорости, но если вызвать вункцию ios_base::sync_with_stdio(0) можно достичь почти той же скорости
0
|
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
|
|
19.07.2013, 11:19 | 3 |
Первое относится к Си, второе - к С++.
0
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 539
|
|
19.07.2013, 11:20 | 4 |
cin cout работают через сканф и принтф. вы получите небольшие задержки на больших объемах данных из-за оберток. а вообще от задачи как всегда зависит.
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 11:22 | 5 |
ну смотря как читаешь, можно просто использовать feof
Добавлено через 1 минуту а вообще прочитай это http://codeforces.ru/blog/entry/5217?locale=ru
1
|
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
|
|
19.07.2013, 11:22 [ТС] | 6 |
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 11:25 | 7 |
это привязку можно отключить изпользовав функцию которую я говорил, можешь поподробнее почитать по ссылке там и сравнение есть
0
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 539
|
|
19.07.2013, 11:27 | 9 |
не ссылаются, а внутри себя их пользуют.
ну что значит на много медленнее? попытайтесь покрутить в циклах вывод на консоль и в файл и вы увидете что и в том и в другом случае они равны (я уверен что с погрешностью в 1-2%). в первом случае потому что вывод на консоль занимает какой то время а во втором потому что вы пишете на диск и тут уже именно эта операция занимает львиную долю времени.
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 11:29 | 10 |
0
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 539
|
|
19.07.2013, 11:30 | 11 |
если вы спрашиваете с контекстом "а че мне использовать в лабах по программингу, где я вывожу по 10 строк текста за все время программы", то пользуйте то что удобнее. если вам надо выводить что-то большое я бы взял и провел тесты. хотя уверен, что разница между ними минимальна.
Добавлено через 37 секунд aram_gyumri я сначала написал свое, потом ваше только обновилось в вебе
0
|
Kastaneda
|
19.07.2013, 11:34
#12
|
Не по теме: Там тест вообще не о чем не говорит. Всмысле может он и правильно сделан и цифры там адекватные, но я не могу принять это на веру. Автор нигде не написал какие ключи компиляции использовал для сборки теста. Поэтому я могу подумать, что он вообще все в дебаг режиме прогнал, отсюда такая разница между MSVS и MinGW.
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 12:03 | 14 |
Kastaneda, это чисто для олимпиад делалось и помоему автор использовал ключи которыми компилируют на кодфорсес
Добавлено через 3 минуты Kastaneda, вот тут еще одно сравнение http://codeforces.ru/blog/entry/562
0
|
19.07.2013, 12:29 | 15 |
Тест тоже не правильный. Первое - я только в одном месте (и то в коментах) увидел какое-то упоминание ключей компиляции, второе - сам автор подумал, что файл может лежать в кеше после первого прочтения, но сам же не учел это. Поэтому все показатели, после первого прочтения файла, можно считать неправильными.
Третье - можно же взять самому написать подобный тест, только на этот раз сделать все правильно - правильно скомпилировать и правильно запустить. И выложить результаты сюда
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 15:28 | 16 |
Kastaneda, сейчас попробую сделать
Добавлено через 32 минуты сделал простенький тест 10000000 int-ов, мой проц Intel Pentium B980 2.4 GHz компилировал так Код
g++ -O2 test.cpp -o test Код
std::cin 16.81 17.21 16.95 scanf 2.20 2.25 2.24 std::cin с без синхронизации 10.58 10.59 10.73 Добавлено через 3 минуты буду рад если еще кто-нибудь протестирует
0
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
19.07.2013, 17:07 | 17 |
aram_gyumri, лучше cout, там время чисте будет.
0
|
Заблокирован
|
|
19.07.2013, 18:09 | 18 |
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
19.07.2013, 23:50 | 19 |
duhast_vladisla, я конечно тоже на си пишу, но на олимпиадах без stl туго
0
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
20.07.2013, 00:57 | 20 |
duhast_vladisla, не соглашусь с вами) всётаки порой эти "недообъекты" очень упрощают жизнь.
0
|
20.07.2013, 00:57 | |
20.07.2013, 00:57 | |
Помогаю со студенческими работами здесь
20
Заменить scanf и printf на cin и cout Cin и cout заменить на scanf и printf Заменить printf scanf на cout cin Заменить printf на cout, scanf на cin Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |