infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Vlad Eugen Dornescu din Martie 04, 2011, 12:41:43



Titlul: it->first, it->second
Scris de: Vlad Eugen Dornescu din Martie 04, 2011, 12:41:43
Salut.
Nu pot face debug cum trebuie la un cod.Daca vreau sa vad ce valoare are it->second pentru un anumit iterator, in fereastra cu watches imi apare "There is no member or method named first/second".
Am incercat si cu punct si cu sageata si nimic.
Declararile sunt urmatoarele :

Cod:
set< pair <int, int> > ships;
set< pair <int, int> >::iterator it, it2;

Am mai folosit STL si vector,set cu pair dar n-am mai patit asta niciodata.


Titlul: Răspuns: it->first, it->second
Scris de: Gabriel Bitis din Martie 04, 2011, 12:55:39
Nu merge sa atibui valoarea it->second unei variabile, si sa urmaresti valoarea acelei variabile?


Titlul: Răspuns: it->first, it->second
Scris de: Vlad Eugen Dornescu din Martie 04, 2011, 12:57:44
Nu merge sa urmaresc.
Fac ceva de genul :

Cod:
if(it != ships.end() && it -> second > y)
fout << "-1\n";
else
{
it2 = it;
for(;it2 != ships.begin() && it2 -> second < y; --it2);
ships.erase(it2, it);
ships.insert(make_pair(x, y));
fout << ships.size() << "\n";
}

Nu pot face debug cum trebuie, nu vad niciodata valoarea lui it2->second ca sa vad daca e mai mica, mai mare decat y.


Titlul: Răspuns: it->first, it->second
Scris de: Savin Tiberiu din Martie 04, 2011, 13:23:58
Incearca (*it).second


Titlul: Răspuns: it->first, it->second
Scris de: Vlad Eugen Dornescu din Martie 04, 2011, 13:26:57
"One of the arguments you tried to pass to operator* could not be converted to what the function wants."


Titlul: Răspuns: it->first, it->second
Scris de: Dragos Oprica din Martie 04, 2011, 14:01:48
Incearca doar:

Cod:
*it

O sa mearga, iti va arata un pair in watch.





Titlul: Răspuns: it->first, it->second
Scris de: Vlad Eugen Dornescu din Martie 04, 2011, 14:08:49
Acelasi lucru mi-l spune.  ](*,)


Titlul: Răspuns: it->first, it->second
Scris de: Pripoae Teodor Anton din Martie 04, 2011, 15:44:33
Lasa debugger-ul... Invata sa debuggezi cu printf-uri.


Titlul: Răspuns: it->first, it->second
Scris de: Alexandru-Iancu Caragicu din Martie 07, 2011, 18:17:27
Lasa debugger-ul,,, Invata sa debuggezi cu printf-uri.

e mai productiv cu debugger decat cu printf
lucreaza in MinGW?


Titlul: Răspuns: it->first, it->second
Scris de: Vlad Eugen Dornescu din Martie 07, 2011, 18:31:30
Da, lucrez in MinGW.
E mai productiv sa ma intrebi pe mine, decat pe el.


Titlul: Răspuns: it->first, it->second
Scris de: Savin Tiberiu din Martie 07, 2011, 19:22:34
[offtopic]
Debuggerul nu e neaparat mai productiv.

Observ din ce in ce mai mult o tendinta a elevilor in romania de a nu mai pune mare importanta pe implementare. Am vazut elevi care doar citeau problema, scoteau solutia si nu o mai implementau. Sau cand implementau stateau cu mii de variabile in watch. Si dupa olimpiada va plangeti toti si faceti clasamente cu cat ati fi avut daca nu ati fi busit implementarea. Sau elevi care ziceau ca "am luat 100 dar daca nu busheam luam 250 si intram in lot". Hai sa va zic o chestie. Busheala face parte din skill, un skill care se creaza implementand multe probleme si obisnuindu-va sa scrieti problema curat din prima. De acea e mai ok sa folosesti printf-uri in loc de debugger. O sa va obisnuiti sa va ganditi codul in timp ce il scrieti, sa nu mai scrieti chestii de aiurea in cod avand in cap ca "daca e gresit o sa il vad cu debuggeru". Inteleg sa il folositi in concurs, cand chiar conteaza sa iti gasesti repede greseala, insa cand esti acasa si nu te preseaza nimeni va recomand sa folositi printf. E un fel de a antrena cu o mana la spate.
[/offtopic]


Titlul: Răspuns: it->first, it->second
Scris de: Simoiu Robert din Martie 07, 2011, 19:47:31
OFF : Sunt de acord cu Savin, watch-urile sunt greu de observat si in plus de asta este greu pana tot repeti programul de atatea ori. Un printf e mult mai util in cazurile astea.