Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-02-2012, 22:50   #1
alessandrom
Member
 
L'Avatar di alessandrom
 
Iscritto dal: Aug 2005
Città: MB
Messaggi: 126
[C++] Forward iterator in array bidimensionali

Ciao a tutti,
sto facendo altre prove con c++ e ho implementato una classe per rappresentare una matrice. in questa classe ho messo due strutture dati che si comportano come una lista di liste:

Codice:
struct colonna{
int indicecolonna;
colonna *next;
};

struct riga{
int indiceriga;
colonna *colonne;
riga* next;
};
mi piacerebbe realizzare un forward iterator in grado di scorrere la matrice da sinistra verso destra, e dall'alto verso il basso, ma non trovo materiale/spiegazioni adeguati.

Potreste darmi una mano?

PS
Non posso cambiare implementazione, voglio solo sapere se così è possibile realizzare o no un fwd iterator.
alessandrom è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2012, 00:55   #2
__ZERO_UNO__
Member
 
L'Avatar di __ZERO_UNO__
 
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
Per caso, la sparo lì, devi implementare una classe che si chiama SparseMatrix?
lol....

Se googli sparse matrices trovi tonnellate di materiale.

PS
Dai una occhiata al sparse matrices compressed row storage.
__________________

AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB
Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX
Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200

Ultima modifica di __ZERO_UNO__ : 04-02-2012 alle 01:02.
__ZERO_UNO__ è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2012, 11:35   #3
alessandrom
Member
 
L'Avatar di alessandrom
 
Iscritto dal: Aug 2005
Città: MB
Messaggi: 126
Ciao, grazie per il link, ma volevo sapere se era possibile realizzare un iteratore con l'implementazione che già ho a disposizione.
alessandrom è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2012, 15:11   #4
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Il problema di base e' che l'implementazione che hai scelto e' poco pratica (liste di liste ? meglio un array di array o un unico array) e sbagliata (dove salvi il valore della cella A(i,j)?)
In ogni caso l'iteratore lo puoi fare, sara' una struttura che contiene un riferimento tanto alla riga corrente quanto alla colonna corrente.
Quando lo fai avanzare procedi lungo la colonna corrente, quando arrivi alla fine avanzi di uno sulla riga corrente e riparti
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2012, 17:18   #5
alessandrom
Member
 
L'Avatar di alessandrom
 
Iscritto dal: Aug 2005
Città: MB
Messaggi: 126
Ciao marco, grazie per la risposta.

Oggi pomeriggio sono riuscito a fare l'iteratore della lista di liste.
Il problema però è dato dal fatto che non posso definire l'operatore ==, perchè per come l'ho implementato io l'iteratore genera "al volo" una struct contenente coordinate e valore.

Ogni volta che io chiamo begin, end o ++, non viene riutilizzata la stessa struct, ma se ne crea una nuova, anche per lo stesso elemento.

E' corretto oltre a confrontare l'indirizzo confrontare anche i contenuti per vedere se le strutture si riferiscono effettivamente allo stesso identico elemento? (Le strutture contengono i dati dell'elemento, non l'elemento stesso com'è memorizzato nella matrice)
La consegna dell'esercizio dice che l'iteratore deve ritornare delle struct che contengono coordinate e dato memorizzato, ma non dice che devono essere usate anche per realizzare la classe matrice in sè.

Ultima modifica di alessandrom : 04-02-2012 alle 17:25.
alessandrom è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Microsoft punta su sicurezza e qualità: ...
ChromeOS è un condannato a morte:...
Robot aspirapolvere Narwal in super offe...
TSMC porterà la produzione a 3 nm...
Overwatch: inizia una nuova era per il t...
Monitor gaming in super offerta su Amazo...
Nuove conferme sui prezzi dei Galaxy S26...
LG OLED 48'' in super offerta su Amazon:...
I MacBook Pro con M5 Pro/Max sono quasi ...
3 Scope elettriche top in offerta su Ama...
ARC Raiders chiude un mese da record: &e...
Droni DJI in offerta su Amazon: Mini 4K ...
La metà degli utenti di Steam usa...
Meta Quest 3S scende di prezzo su Amazon...
Handheld Android con display OLED a 144 ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v