infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Simoiu Robert din Decembrie 29, 2011, 11:55:05



Titlul: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 29, 2011, 11:55:05
Care e diferenta dintre STL si Pointeri pentru listele simplu (dublu etc.) inlantuite ? La viteza, memorie etc.


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Decembrie 29, 2011, 16:40:07
Ce exact vrei sa intrebi?


Titlul: Răspuns: Pointeri vs STL
Scris de: FMI Ciprian Olariu din Decembrie 29, 2011, 16:45:53
Ce exact vrei sa intrebi?

Cred ca vrea sa stie ce este mai bine de folosit intr-un concurs (optim din punct de vedere al memoriei si al timpului de executie) dintre operatiile cu pointeri la liste(simplu sau dublu inlantuite) si STL  :-k


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 29, 2011, 17:32:20
Ce exact vrei sa intrebi?

Cred ca vrea sa stie ce este mai bine de folosit intr-un concurs (optim din punct de vedere al memoriei si al timpului de executie) dintre operatiile cu pointeri la liste(simplu sau dublu inlantuite) si STL  :-k
Exact. Vreau ceva gen : pointerii sunt buni la aia, aia, aia, STL-ul e bun pentru ...., si la final as vrea sa stiu per ansamblu care e mai bun. As dori sa stiu ca timp de executie, ca memorie .... si daca mai aveti voi ceva de adaugat :).


Titlul: Răspuns: Pointeri vs STL
Scris de: Cristian Lambru din Decembrie 29, 2011, 21:29:01
Primul si cel mai important lucru care ar trebui sa te intereseze este viteza de implementare. Cred ca doar la probleme extreme listele inlantuite (simplu, dublu etc) ar putea sa aiba o viteza diferita fata de orice structura de date din STL. Sincer eu unul mizez pe STL datorita vitezei cu care se poate implementa codul si a faptului ca ma scapa de depanari inutile!


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 30, 2011, 11:47:03
Eu din ce-am vazut pe surse trimise de mine, STL-ul e mai bun la memorie, iar pointerii la viteza. Nu stiu cat de adevarat e, asa se observa (nu f. mult).


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Decembrie 30, 2011, 14:23:22
Adica tu vrei sa compari array-uri alocate dinamic cu vector din STL? Fii mai specific.


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 30, 2011, 14:24:38
Dupa cum am spus in primul post, listele simplu inlantuite sa spunem, ca-s cele mai utilizate, cum is mai bune, cu pointeri sau cu STL, la asta m-am referit :), adica cam ce ai zis si tu.


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Decembrie 30, 2011, 14:29:39
Tu stii ce inseamna STL? Ai macar cea mai vaga idee despre ce vorbesti?


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 30, 2011, 14:31:43
Stiu ce inseamna STL, si stii sigur la ce m-am referit prin STL, adica la vectori, nu la alta structura de date pe care o are :P.
LE : Am vazut acuma la ce te-ai referit, am vrut sa zic listele simplu inlantuite cu pointeri SI STL, separat, nu liste s. i. CU STL ;).


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Decembrie 30, 2011, 15:38:20
Iți lipsesc noțiuni fundamentale de C și C++. Cred că ar fi mai simplu sa postezi cod ca să ne putem da seama ce anume vrei să compari.

Între timp ai putea să înveți despre ce înseamnă pointeri, liste înlănțuite, array-uri alocate dinamic, STL și despre cum trebuie să folosești toți acești termeni.


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 30, 2011, 15:46:42
Stiu ce inseamna fiecare din acestea, si stiu si ce-am zis. Am zis ca in locul pointerilor, se folosesc adesea vectorii din STL pentru ca sa se "tina" listele inltantuite. Adica in loc de
Cod:
struct graf {
    int nod, val;
    graf *next;
};
graf *G[MAX_N];
O sa avem, in STL :
Cod:
vector <int> G[MAX_N];
Sper ca e mai clar acuma :P. Si sunt curios ce-am gresit in ce-am zis, ca sa ma pot corecta pe viitor ;) (Ciprian si Cristian au inteles ce-am zis, deci totusi nu inteleg ce am zis asa ambiguu). (dupa cum scrie si aici, asta-i STL-ul (http://www.sgi.com/tech/stl/stl_introduction.html))
Deci eu stiam ca lista inlantuita e cu pointeri, si array-ul dinamic e vectorul din STL. E bine asa ?  :-'.
Sa vin cu o completare, eu nu am inteles de ce mi-ai spus tu aia, pentru ca eu, cand am specificat STL, m-am gandit implicit la vectorul din STL, si nu la list din STL, si ma gandeam ca asta se intelege, imi cer scuze daca s-a inteles altceva, sa-mi spui daca mai ai ceva de adaugat, si as vrea sa-mi raspunzi la intrebare, ca pentru asta am creat topicul, nu sa ne certam aiurea :).


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Decembrie 30, 2011, 16:46:51
Cateva definitii:

  • pointer = un tip de date care se refera la alta valoare stocata in memorie retinandu-i adresa.
  • lista inlantuita = o structura de date care consta din mai multe noduri care impreuna formeaza o secventa.
  • STL = o biblioteca de clase, algoritmi, etc.

Acum reciteste intrebarea pe care ai pus-o la inceputul topicului si gandeste-te ce e in neregula cu ea.

Legat de ce te intereseaza, vectorii din STL folosesc in general mai putin memorie si eu cred ca ar trebui sa mearga si mai repede. Eu nu am avut niciodata nevoie de liste inlantuite in concursuri si nici nu cred ca le voi implementa vreodata.


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Decembrie 30, 2011, 17:40:06
Merci, stiu ce ai zis cu definitiile, se pare ca m-am incurcat in exprimare. :) Ms inca odata :).


Titlul: Răspuns: Răspuns: Pointeri vs STL
Scris de: Laurentiu Ion din Ianuarie 08, 2012, 18:36:08
Citat din mesajul lui: Simoiu Robert
Deci eu stiam ca lista inlantuita e cu pointeri, si array-ul dinamic e vectorul din STL. E bine asa ?  :-'.

array-ul dinamic NU inseamna vector din STL, el poate fi implementat cu "new", si a existat inainte de STL

Citat din mesajul lui: Simoiu Robert
Sa vin cu o completare, eu nu am inteles de ce mi-ai spus tu aia, pentru ca eu, cand am specificat STL, m-am gandit implicit la vectorul din STL, si nu la list din STL, si ma gandeam ca asta se intelege

de ce te-ai "gandit implicit" la vectorul din STL cand ai specificat STL?


Titlul: Răspuns: Pointeri vs STL
Scris de: Simoiu Robert din Ianuarie 08, 2012, 21:40:19
In primul rand, cand am zis array dinamic, am zis vector din STL, si e corect, ceea ce ai zis tu este offtopic, eu vroiam sa stiu exact ceea ce-i vectorul din STL, nu faza cu new, pe care, desi a existat inainte de STL, pe mine (si pentru intrebarea pe care-am pus-o) nu ma intereseaza. Faza cu ganditul, eu cand am zis la inceput diferenta dintre implementarea grafurilor, m-am gandit doar la vectori, ca de obicei ei se utilizeaza pentru asta :).


Titlul: Răspuns: Pointeri vs STL
Scris de: Laurentiu Ion din Ianuarie 08, 2012, 23:02:08
nu stiu de unde scoti tu echivalentele astea vector dinamic nu e echivalent cu vector STL nici spre stanga nici spre dreapta


Titlul: Răspuns: Pointeri vs STL
Scris de: Valentin Stanciu din Ianuarie 09, 2012, 17:42:16
Eu nu am avut niciodata nevoie de liste inlantuite in concursuri si nici nu cred ca le voi implementa vreodata.

Out of topic: doar la bac ai avut nevoie de ele. :P


Titlul: Răspuns: Pointeri vs STL
Scris de: Andrei Grigorean din Ianuarie 10, 2012, 05:20:37
Eu nu am avut niciodata nevoie de liste inlantuite in concursuri si nici nu cred ca le voi implementa vreodata.

Out of topic: doar la bac ai avut nevoie de ele. :P

Mai ții minte? :))