Open AntonC9018 opened 4 months ago
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L3-L12 te rog, de partajat codul ăsta
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L48
De ce îl copiezi, dacă imediat după asta îl ștergi? std::move
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L41 Și scoate studentul din interfața, ca să nu te joci voobshe cu copiile / mișcare, dar prosto să lucrezi cu ultimulul stundet print pointer.
&& este important aici că folosești std::string
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L91 Aici poți la head != nullptr cu un assert, că altfel într-un fel nu-i legal să invoci acea funcție. Și atunci n-o să ai nevoie de a verifica node != nullptr în al doilea if.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L98 Aici tot cred că se permite printr-un assert, că nu trebuie să fie legal asta.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L106 Dacă nu faci assert-uri, atunci invoca asta numai dacă ai schimbat lista. Că acum dacă invocarea este invalidă, nu primești nici o eroare, dar starea listei o să fie modificată poliubomu, nu-i corect.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L109 Ai ținut cont de length aici, poți mai simplu să realizezi asta
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L119-L122 Ori una, ori alta. Ambele abordări n-are sens să realizezi. În aceaași funcție
Adaugă despre analiza rezultatelor, și o să fie 7, cu codul așa cum este. Dacă fixezi codul, și adaugi analiza, o să fie 8.
Încă nu ai trecut prin toate chestiile de la data trecută.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L21 Folosește ori
size_t
oriint64_t
dacă vrei un tip pe 64 de biți.long long
asta-i "a relic of the past" -- o decizie proastă din C.https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L33 Funcție polimorfică pentru asta. Ca și la lab 2.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L36 N-a să ai nevoie de asta dacă o să folosești o funcție polimorfică pentru calculare a timpului. O să ai prosto un return atunci.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L39 Bubble sort trece prin mai puține elemente în următoarele iterații, că la fiecare etapă elementul maxim ajunge la sfârșit.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L60 Nu face o copie. Aici trebuie să fie un
std::move
probabil.https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L64 Aici tot o să fie
std::move
. Faci capec cât de multe copii de acele șiruri redundante. Codul ăsta o să fie mai performant în JS dacă îl scrii atât de neglijent față de aceste chestii :)https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L68 Tot move.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L157-L179 Codul de partajat printr-un fișier comun.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L208-L212 Aici tot se repetă, folosește o funcție polimorfică, sau măcar pune acestea în niște scope-uri separate.
https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L206 Sortezi tablouri deja sortate după invocarea primului algoritm, trebuie să le copiezi din nou.