[so] [SO][Tema1][General] Abstractizare hashtable
Razvan Crainea
razvan.crainea at gmail.com
Tue Mar 13 23:40:44 EET 2018
On Tue, Mar 13, 2018 at 11:05 PM Teodora Serbanescu via so <
so at cursuri.cs.pub.ro> wrote:
> Bună seara,
>
> Am o întrebare legată de una din precizările de la depunctări, care nu imi
> este foarte clară:
> "implementare netransparentă a hashtable-ului; operațiile pe hashtable nu
> abstractizează implementarea lui: nu există o abstractizare a obiectului
> hashtable sau operații clare asupra acestuia"
>
Implementarea voastră trebuie să abstractizeze hashtable-ul ca un singur
obiect, pe care să-l pasați funcțiilor voastre. Dacă implementarea voastră
pasează spre exemplu de fiecare dată un vector de bucket-uri și un size,
atunci nu este corect.
> În implementarea mea am folosit funcții cu număr variabil de parametri,
> astfel nefiind foarte clar modul de apelare al acestora doar din antetul
> funcției. În acest caz, se poate spune că nu se respectă condiția de mai
> sus sau "operații clare asupra acestuia" se referă strict la implementarea
> lor?
>
Nu cred că o implementare cu funcții cu număr variabil de parametri este în
regulă, nu văd de ce ai avea nevoie de așa ceva la tema asta (în afară de
printf).
Din păcate nu am acces acum la tema ta (fep-ul este picat)[*] și nu pot
să-ți dau un răspuns sigur acum, dar îți sugerez să scapi de funcțiile
respective, sau să le păstrezi decât dacă nu se poate altfel.
De asemenea, mai mult o curiozitate. Sunt funcțiile cu număr variabil de
> parametri de obicei good/bad practice?
>
Bad practice. Pe lângă faptul că este ineficient dpdv memorie și procesare,
este și foarte greu de urmărit și debugat.
[*] Ăsta este unul din motivele pentru care vă sugerăm să faceti tema pe
gitlab, pentru ca noi să avem acces mai ușor la codul vostru, să vă putem
ajuta.
Numai bine,
Răzvan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20180313/56440b72/attachment.html>
More information about the so
mailing list