IF alebo Switch

Sekcia: Programovanie 19.05.2010 | 17:22
Avatar iviay00   Používateľ
Zdravim , potreboval by som vytvorit aplikaciu v c++ ktora bude obsahovat funkciu s mnozstvom porovnavani.
Co je podla vas efektivnejsie spravit :
IF pre kazdy stav alebo SWITCH a CASE ?

Povedzme ze budem potrebovat 500 porovnani .
Dakujem.
    • Re: IF alebo Switch 19.05.2010 | 17:35
      dusan3838   Návštevník
      urob obe varianti, zmeraj cas programu a zistis co je efektivnejsie
    • Re: IF alebo Switch 19.05.2010 | 17:36
      Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
      Zalezi len a len od kompilatora, ale povedal by som, ze gcc -O2 to zoptimalizuje a prelozi rovnako.
      Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
    • Re: IF alebo Switch 19.05.2010 | 17:46
      Avatar iviay00   Používateľ
      No ono to je tak ze to je herny engine robeny na c++ a ten algoritmus co potrebujem je vnutorny jazyk enginu, ktory si kompiluje sam engine. Ale asi v tom nebude velky rozdiel... Dakujem za odpovede.
    • Re: IF alebo Switch 19.05.2010 | 18:36
      Avatar Michal Nánási Ubuntu 11.04  Používateľ
      Z hladiska efektivity to mas jedno (ak kompilujes s optimalizaciami).

      Z hladiska pisania programu. 500 porovnani? Pochopil som spravne ze tam chces dat 500 if-ov? Ak hej, tak to urob radsej uplne inac. Ak 500 je iba ze 500 krat, tak OK:-)
      Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!
      • Re: IF alebo Switch 19.05.2010 | 18:51
        Avatar iviay00   Používateľ
        Je to algoritmus ktory overi co je postava zac a potom vykona k nej prislusnu akciu. Ano 500 if ale zatial to mam cez switch a ide to fajn.
        • Re: IF alebo Switch 19.05.2010 | 20:04
          Avatar m4jkl   Používateľ
          tie postavy su identifikovane cim? popripade vznikaju/zanikaju dynamicky? ak ich mas presne 500, tak preco ich neidentifikovat cislom - indexom do pola, ktore by obsahovalo pointer na funkciu, ktora sa ma vykonat. a usetris mozno aj 500 porovnani :)
        • Re: IF alebo Switch 19.05.2010 | 21:49
          Avatar fraxinus Debian 5.0  Používateľ
          Toto priam vola po dedicnosti. Vytvor nejaku triedu Postava, pridaj abstraktnu metodu Update alebo nieco take, z tej triedy odded nove triedy Utocnik, Pesiak, Kon... a implementuj tam tu abstraktnu metodu. Potom volaj Update a ono sa to vykona to co ma.
          I am not here. Isn't here just there without a t?
    • Re: IF alebo Switch 19.05.2010 | 19:00
      Avatar borg Fedora  Administrátor
      kompilator ti to moze zoptimalizovat, ale dolezita je aj citatlenost kodu. tu prefrerujem switch.
      • Re: IF alebo Switch 19.05.2010 | 19:17
        Avatar iviay00   Používateľ
        Tak to necham ako to je na switch , dakujem.