|
Titlul: map Scris de: Filip Cristian Buruiana din Noiembrie 19, 2007, 20:37:07 Daca stie cineva si ma poate ajuta:
Cum se tine un array intr-un map? Array-ul as vrea sa fie un tip definit de mine. Am incercat ceva de genul: Cod: ............ Am incercat sa introduc si un operator de comparare intre doua elemente matrice, dar imi spune ca matrice trebuie sa fie clasa. Stie cineva cum pot sa rezolv? Titlul: Răspuns: map Scris de: Andrei Grigorean din Noiembrie 19, 2007, 20:46:47 infoarena nu incurajeaza postarea temelor pe forum =))
E chiar necesar sa ai array? Nu merge cu vector <vector<int> > ? Incearca pe sgi, poate gasesti ceva. Acum citesc si eu, sa vedem :). Titlul: Răspuns: map Scris de: Filip Cristian Buruiana din Noiembrie 19, 2007, 20:49:32 Merge, insa voiam sa am control absolut pe ce e implementat de mine. Cu vector<vector<int>> imi da SIGKILL de exemplu :rotfl:.
Titlul: Răspuns: map Scris de: Andrei Grigorean din Noiembrie 19, 2007, 20:51:23 Nu are cum sa iti bage intr-un map niste chestii pe care nu le poate compara. Presupun ca trebuie sa iti creezi tu o clasa, etc.
Apropo, ce vrei sa rezolvi? Titlul: Răspuns: map Scris de: Filip Cristian Buruiana din Noiembrie 19, 2007, 20:52:57 4x4 puzzle. Voiam sa pornesc de la configuratia initiala si sa expandez starile alea ( o prima idee pentru inceput ). Ca sa verific daca un tablou era pus deja in coada voiam sa folosesc map.
Titlul: Răspuns: map Scris de: Andrei Grigorean din Noiembrie 19, 2007, 20:54:52 Ai putea sa faci un hash mic :). Oricum mapurile astea folosesc multa memorie si daca vrei sa faci un branch and bound mai mare se duce in cap.
Titlul: Răspuns: map Scris de: Stefan-Alexandru Filip din Noiembrie 19, 2007, 20:57:27 Nu prea poti sa implementezi cu typedef int matrice[4][4] pentru ca nu ai un constructor de copiere, si nu poti sa-l redefinesti pentru un pointer. Degeaba folosesti o functie de comparare.
Implementeaza matrice ca o clasa sau un struct. Titlul: Răspuns: map Scris de: Cosmin Negruseri din Noiembrie 19, 2007, 21:04:48 Eu daca am nevoie de asa ceva rapid, fac o reprezentare pe string si apoi folosesc stringuri ca chei.
Titlul: Răspuns: map Scris de: Dan-Leonard Crestez din Noiembrie 20, 2007, 06:27:13 Un numar intra 0 si 16 poate fi bagat in jumatate de byte; iar 16 numere incap foarte frumos in (16 * 4) = 64 biti. Poti sa encodezi destul de simplu si rapid starea puzzle-ului intr-un long long si sa pui long long in map. BTW, sigur nu vrei set?
Alternativ iti faci un struct si implementezi operator de comparare pe struct. Un typedef aici nu ajunge, array-urile au semnificatii dubioase cand sunt puse ca parametri. Titlul: Răspuns: map Scris de: Cosmin Negruseri din Noiembrie 20, 2007, 08:46:47 Parca nu ai map pe long long in C++.
Titlul: Răspuns: map Scris de: Andrei Grigorean din Noiembrie 20, 2007, 10:40:55 Ba da, ai :).
Titlul: Răspuns: map Scris de: Cosmin Negruseri din Noiembrie 20, 2007, 11:09:27 Pai si nu tre sa implementezi tu functie de hashing pt long long?
Titlul: Răspuns: map Scris de: Stefan Istrate din Noiembrie 20, 2007, 11:16:30 Pentru map trebuie doar o functie de comparare stricta. Iar pentru long long e built-in.
Titlul: Răspuns: map Scris de: Cosmin Negruseri din Noiembrie 20, 2007, 11:25:13 Bleah, da ai dreptate, eu ma gandeam la hash_map :) de obicei asta inteleg prin map.
Titlul: Răspuns: map Scris de: Andrei Grigorean din Noiembrie 20, 2007, 11:27:36 Hash_map parca nu era standard g++, nu?
Titlul: Răspuns: map Scris de: Cosmin Negruseri din Noiembrie 20, 2007, 11:29:20 Parca vor sa o bage in standard, si o gasesti cam pe toate compilatoarele folosite in concursuri.
|