Ciao a tutti,
in C/C++ è possibile avere una "lista" di array di diverse dimensioni?
Mi spiego, ho delle matrici di varie dimensioni
const PROGMEM uint16_t h_one[4] = {280, 281, 282, 283};
const PROGMEM uint16_t h_two[3] = {204, 205, 206};
const PROGMEM uint16_t h_three[3] = {207, 208, 209};
const PROGMEM uint16_t h_four[7] = {210, 211, 212, 213, 214, 215, 216};
mi piacerebbe poter avere qualcosa del genere, non picchiatemi è un esempio per capirci
const PROGMEM uint16_t hours[4][] = {
{280,281,282,283},
{204,205,206},
{207,208,209},
{210,211,212,213,214,215,216}
};
Solitamente in net uso le liste di array (o qualunque altro oggetto), in modo da poter utilizzare l'indice a mio vantaggio; in questo caso l'indice corrisponde all'ora, quindi senza tanti switch, mi basterebbe scrivere hours[ORA-1]
```c
**[/b] per far riferimento all'array che mi interessa.
Ho provato a cercare, anche se non saprei bene cosa cercare, se esiste qualcosa di simile alle liste net, e ho trovato "std::list", ma mi pare d'aver capito che comunque vuole array a dimensione fissa e nn so se utilizzabile in Arduino!
In ogni caso, cerco di arrangiarmi come posso, quindi stavo valutando, di utilizzare array bidimensionale con la seconda fissa, e un riempi-posto dummy, da gestire!
const PROGMEM uint16_t hours[4][11] = {
{280,281,282,283,999,999,999},
{204,205,206,999,999,999,999},
{207,208,209,999,999,999,999},
{210,211,212,213,214,215,216}
};
Lo so che è uno spreco di memoria, è solo una ipotesi
Al momento è tutto embrionale quindi accetto proposte, sperando di essere riuscito a spiegare l'obiettivo.
TIA
Federico
[UPDATE]
Per capirci in net posso scrivere questo:
List<int[]> hours = new List<int[]>() {
new int[] {8,9,10,11},
new int[] {68,69,70},
new int[] {71,72,73},
new int[] {74,75,76,77,78,79,80}
};
e quindi per accedere all'array che mi interessa, mi basta:
pippo = hours[2];
**
```