|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
Marcina
Joined: 15 Aug 2006 Posts: 26 Location: Rīga
|
Posted: Mon Dec 25, 2006 9:47 pm Post subject: Operācijas ar tekstu (C++) |
|
Gribētos zināt, kurš no šiem variantiem ir labākais, t.i., cik daudz 1 un 0 iezies caur procesoru, un cik vairāk vai mazāk
Simbolu masīvs char a[100].
1) scanf("%s",&a);
2) for(i=0;i<100;i++) scanf("%c",&a[i]);
Pēc tam sekojošās operācijas tik un tā tiks veiktas ar katru simbolu atsevišķi.
No tiem diviem veidiem labākais ir otrs, jo nevajag rezervēt 100 baitus.
Bet kurš būtu ātrāks? Cik ātrāks? |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Mon Dec 25, 2006 11:16 pm Post subject: |
|
Nu sāksim ar to, ka abi šie kodi dara pavisam ko citu, turklāt pirmais nemaz nekompilēsies.
Kā saprast to, ka "No tiem diviem veidiem labākais ir otrs, jo nevajag rezervēt 100 baitus. " ?
Quote: | Bet kurš būtu ātrāks? Cik ātrāks? |
Ir pāris iemesli, kāpēc 1ais būtu ātrāks - bet tas noteikti nav tas, ko tu gribi prasīt :)
Turklāt, šeit miljoniem reižu lielāku lomu spēlēs nevis tas, cik ātri kodu spēs apstrādāt procesors, bet tas, cik ātri drukās lietotājs (pieņemu, ka standarta input nav redairektots).
Edit: turklāt, ja reiz topicā esi ielicis C++, tad labāk izmanto C++ string klassi, nevis char *, un cin objektu ar << operatoru, nevis scanf. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Dec 25, 2006 11:38 pm Post subject: |
|
GiGa wrote: | Edit: turklāt, ja reiz topicā esi ielicis C++, tad labāk izmanto C++ string klassi, nevis char *, un cin objektu ar << operatoru, nevis scanf. |
+1
Edit:
piebilde - lietotāja ievads/izvads ir viena no pēdējām lietām, par kurām ir jāuztraucas optimizējot kodu. Vai 80/20 likumu zini (jālasa tikai rindkopa, kas sākas ar "In computer science the...") - http://en.wikipedia.org/wiki/Pareto_principle http://www.devx.com/tips/Tip/13814 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|