•stef2n
|
 |
« : Februarie 20, 2009, 01:59:28 » |
|
|
|
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•APOCALYPTO
|
 |
« Răspunde #1 : Februarie 01, 2010, 19:45:27 » |
|
reverse=strrev search=strstr si asa mai departe. Am o intrebare functiile din STL sunt mai rapide decat cele din string.h sau la fel (banuiesc ca mai incete nu au cum sa fie :-j)? Multumesc anticipat pentru raspuns  .
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #2 : Februarie 01, 2010, 21:39:54 » |
|
reverse si search is pentru orice tip de container nu doar pentru string. Toate functiile din STL au fost optimizate pana la refuz, trage tu concluzia  Tot folosind copy se poate si citi din fisier. Numai ca copiaza tot continutul nu doar o anumita parte  copy( istream_iterator<int>(in), istream_iterator<int>(), back_inserter(v) );
|
|
|
Memorat
|
|
|
|
•APOCALYPTO
|
 |
« Răspunde #3 : Februarie 01, 2010, 22:16:15 » |
|
reverse si search is pentru orice tip de container nu doar pentru string. Toate functiile din STL au fost optimizate pana la refuz, trage tu concluzia  Tot folosind copy se poate si citi din fisier. Numai ca copiaza tot continutul nu doar o anumita parte  copy( istream_iterator<int>(in), istream_iterator<int>(), back_inserter(v) );
Alexandru stiam ce ai zis mai sus(in afara de chestia cu fisierul) dar nu asta e ceea ce vroiam sa aud. Vreau sa stiu daca pierd ceva din timp daca folosesc strrev strstr str*** ? Normal ca au fost optimizate la maxim asta e logic mai ales ca au fost create dupa string.h, dar vreau un raspuns concret pentru intrebarea precedenta:).
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #4 : Februarie 01, 2010, 22:33:41 » |
|
Alexandru stiam ce ai zis mai sus(in afara de chestia cu fisierul) dar nu asta e ceea ce vroiam sa aud. Vreau sa stiu daca pierd ceva din timp daca folosesc strrev strstr str*** ? Normal ca au fost optimizate la maxim asta e logic mai ales ca au fost create dupa string.h, dar vreau un raspuns concret pentru intrebarea precedenta:).
În opinia mea, ai face bine să foloseşti STLul. Nu ştiu cu cât e mai rapid, dar cu siguranţă diferenţa dintre ele e nesemnificativă. STLul plusează prin uşurinţa utilizării. Văd că ai început să scrii ordonat. Bravo. 
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•alexandru92
|
 |
« Răspunde #5 : Februarie 01, 2010, 22:35:21 » |
|
strrev este deprecated, pentru versiuni mai noi de compilatoare nici macar nu apare  . Cat despre strstr alege care vrei, atat strstr cat si search au ca si complexitate in cel mai rau caz O( m*n ) desi in medie e liniar  Per general poti folosi pe care vrei tu ( desi eu iti recomand mai bine STL , ii mai modern ) numai nu fa o varza din ele 
|
|
|
Memorat
|
|
|
|
•APOCALYPTO
|
 |
« Răspunde #6 : Februarie 01, 2010, 23:23:41 » |
|
numai nu fa o varza din ele  Bine zis! La clasa din pacate nu facem ceea ce avem nevoie pentru olimpiada( nu folosim algoritmi optimi, folosim matrice in loc de liste de adiacenta la grafuri, nu folosim STL, folosim backtarcking iterativ in loc de recursiv si altele). Deci exista "pericolul" de a face o varza intre ce e bun pentru noi olimpicii si ce e bun pentru nivelul de la clasa pentru ca si noi trebuie sa dam lucrari  .
|
|
« Ultima modificare: Februarie 01, 2010, 23:31:26 de către Calin Dragos Ion »
|
Memorat
|
|
|
|
•nautilus
Strain
Karma: 0
Deconectat
Mesaje: 12
|
 |
« Răspunde #7 : Februarie 09, 2010, 22:43:13 » |
|
Am o intrebare: Daca la o problema trebuie sa fac Debug, iar in Watch imi pun un vector (un vector din STL), nu imi apar valorile pe care le are vectorul. Cum ar trebui sa fac ca sa pot vedea totusi ce valori am in vector? 
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #8 : Februarie 09, 2010, 22:47:45 » |
|
Daca ai vector<int>A, sa zicem, poti da sa iti afiseze in watch A[ i ]. Asta merge. Practic, poti cere sa iti afiseze un singur element ( iti afiseaza si adresa de memorie ). Altfel nu ai cum. O solutie ar fi sa faci debug cu printf()-uri. Spor ! 
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #9 : Februarie 10, 2010, 00:18:44 » |
|
Sau sa faci debug in Visual C++.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•nautilus
Strain
Karma: 0
Deconectat
Mesaje: 12
|
 |
« Răspunde #10 : Februarie 10, 2010, 21:23:09 » |
|
nu vreau in Visual C++, vreau sa raman in MinGW  .... am incercat cu A si ma multumeste deocamdata... Multumesc pt sfaturi 
|
|
|
Memorat
|
|
|
|
•APOCALYPTO
|
 |
« Răspunde #11 : Februarie 10, 2010, 23:14:39 » |
|
Am o intrebare: Daca la o problema trebuie sa fac Debug, iar in Watch imi pun un vector (un vector din STL), nu imi apar valorile pe care le are vectorul. Cum ar trebui sa fac ca sa pot vedea totusi ce valori am in vector?  Ba merge:p Modifici countul cum vrei tu si va afisa  . ( si bine inteles bifezi watch as array) La orice structura de date la care ai operatorul [] va functiona watch-ul:)
|
|
« Ultima modificare: Februarie 10, 2010, 23:35:26 de către Calin Dragos Ion »
|
Memorat
|
|
|
|
•nautilus
Strain
Karma: 0
Deconectat
Mesaje: 12
|
 |
« Răspunde #12 : Februarie 14, 2010, 10:57:14 » |
|
Am o intrebare: Daca la o problema trebuie sa fac Debug, iar in Watch imi pun un vector (un vector din STL), nu imi apar valorile pe care le are vectorul. Cum ar trebui sa fac ca sa pot vedea totusi ce valori am in vector?  Ba merge:p Modifici countul cum vrei tu si va afisa  . ( si bine inteles bifezi watch as array) La orice structura de date la care ai operatorul [] va functiona watch-ul:) Stiu ca merge de exemplu sa vad ce valoare are v[100] sau v[5]... Eu ziceam ca nu merge cand folosesc vectorii din STL sa vad toate valorile vectorului atunci cand bag in Watch vectorul v simplu... adica nu mai imi apare: v= {0, 2, 3, 5}Intrebarea mea era daca nu se poate face ceva sa vad toate valorile lui v pe acelasi rand, fara sa stau sa bag in watch v[0], v[1], v[2], v[3],...
|
|
|
Memorat
|
|
|
|
•cipri_tom
Strain
Karma: 0
Deconectat
Mesaje: 12
|
 |
« Răspunde #13 : Martie 12, 2010, 16:34:44 » |
|
Pai eu la vectorii STL ma refer. Si e adevarat ca nu ai cum sa vezi toate valorile vectorului( decat primele 1000 pentru ca pana acolo te lasa textbox-ul de la count sa maresti( dar nici nu ai nevoie mai mult totusi). -bagi V ( care l-ai declarat vector<int> V) in casuta de la watch; -bifezi watch as array; -prima casuta de count lasi 0; -si la a 2-a casuta de count maresti pana la 12. Si cu asta vei vedea elementele din vector de la 0 pana la 12.
unde bifez "watch as array"? ... sau nu te referi la MinGw? si count? nu gasesc instructiunile tale pe MinGw
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #14 : Martie 12, 2010, 16:40:33 » |
|
unde bifez "watch as array"? ... sau nu te referi la MinGw? si count? nu gasesc instructiunile tale pe MinGw
In MinGW nu ai aceste optiuni, in Code::Blocks cred ca se referea...
|
|
|
Memorat
|
|
|
|
•miculprogramator
|
 |
« Răspunde #15 : Mai 31, 2010, 21:53:03 » |
|
Salut !
M-am apucat de curand sa invat STL, pana acum m-am axat exclusiv pe libraria standard a C-ului, asa ca am cateva intrebari.
Banuiesc ca din moment ce se evalueaza altfel, avem voie cu STL la olimpiada. Am dreptate ?
Este mai bine sa folosesc vectorii declarati clasic sau vector <int> v ? Am aceeasi intrebare pentru stive/cozi.
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #16 : Mai 31, 2010, 23:01:30 » |
|
În liceu vei avea voie să folosești STL la orice concurs. Lucrul cu containerele STL (stive, cozi, vectori, etc.) este mult mai încet decât lucrul cu vectorii declarați clasic, dar în general este mult mai comod să folosești elemente din STL.
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #17 : Mai 31, 2010, 23:06:22 » |
|
Nu e cu mult mai incet, n-am intalnit mai mult de 2-3 probleme in care sa se faca diferenta.
|
|
|
Memorat
|
|
|
|
•BitOne
Strain
Karma: -1
Deconectat
Mesaje: 45
|
 |
« Răspunde #18 : Iunie 01, 2010, 10:10:10 » |
|
Este mai bine sa folosesc vectorii declarati clasic sau vector <int> v ? Am aceeasi intrebare pentru stive/cozi.
Totul depinde de context, de exemplu pt lista de adiacenta a unui graf e mult mai usor sa folosesti vector din stl decat sa creezi tu listele simplu inlantuite, dar daca ai nevoie de un vector caracteristic, de exemplu, atunci e ilogic sa folosesti vector din stl. Totul depinde de context.
|
|
|
Memorat
|
|
|
|
•miculprogramator
|
 |
« Răspunde #19 : Iunie 01, 2010, 12:18:33 » |
|
Deci trebuie sa folosesc structurile de date clasice si algoritmii STL ? La grafuri n-am ajuns inca, asa ca deocamdata n-am treaba.
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #20 : Iunie 01, 2010, 13:43:24 » |
|
Sunt de acord cu @BitOne . Nu poti spune exact pentru ce e mai bine sa folosesti STL si pentru ce nu. Ce iti pot spune din proprie experienta este ca te ajuta. La structuri de date gen stiva, coada nu e mare diferenta. Le poti implementa static daca stii exact cat o sa introduci in ele. Daca nu, intervine STL ca sa nu iti mai bati capu cu implementarea lor dinamica. Exemple asemanatoare apar si la utilizarea STL pentru hashing, arbori de cautare echilibrati, grafuri. Ce este cert e ca trebuie sa experimentezi si iti vei da seama cand sa folosesti STL si cand nu. Ideea e ca poti salva mult timp si asta este crucial in concursuri. 
|
|
|
Memorat
|
|
|
|
•BitOne
Strain
Karma: -1
Deconectat
Mesaje: 45
|
 |
« Răspunde #21 : Iunie 01, 2010, 13:58:50 » |
|
Exemple asemanatoare apar si la utilizarea STL pentru hashing.
Defapt in cazul asta mai bine nu. Am incercat si nu se comporta foarte bine , in plus sunt implementate doar pentru un numar limitat de tipuri de data. Eu as sugera sa se faca niste teste intre cele mai folosite functii din stl si aceleasi functii scrie de mana astfel lumea ar sti putin mai bine ce sa foloseasca  ( daca se face asa ceva as vrea sa ma implic si eu  )
|
|
« Ultima modificare: Iunie 01, 2010, 14:59:28 de către SAlexandru »
|
Memorat
|
|
|
|
•miculprogramator
|
 |
« Răspunde #22 : Iunie 01, 2010, 15:09:36 » |
|
Eu as sugera sa se faca niste teste intre cele mai folosite functii din stl si aceleasi functii scrie de mana astfel lumea ar sti putin mai bine ce sa foloseasca  Cred ca asta ar fi foarte useful, un articol care sa cuprinda majoritatea functiilor gen sort, binary_search etc. din STL si cele implementate de mana. 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #23 : Iunie 01, 2010, 16:09:34 » |
|
Pentru cele din STL găsești o documentație bună pe cplusplus.com
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #24 : Iunie 01, 2010, 16:27:37 » |
|
@BitOne Pentru hashing nu se comporta bine daca folosesti containerul map. Se pot folosi bibliotecile hash_set.h sau hash_map.h . Pentru a le folosi trebuie inclus namespaceul __gnu_cxx .... #include<hash_set.h> #include<hash_map.h> .... using namespace __gnu_cxx ....
La problema din arhiva educationala (Hashing) se ia 70 cu map si 100 cu hash de mana sau folosind unul dintre containerele de mai sus. hash_set -> http://infoarena.ro/job_detail/458114
|
|
|
Memorat
|
|
|
|
|