Matrice di ritorno dalla funzione C++

Return Array From Function C



Gli array sono contenitori specifici che hanno valori dello stesso tipo di dati. Le funzioni in C++ eseguono operazioni su array e questi array vengono quindi restituiti alla funzione principale. Ci sono molti approcci per descrivere questo fenomeno. In questa guida vengono spiegati alcuni metodi comuni:

Usa i puntatori per restituire l'array statico

Quando usiamo un array normale, ci sono possibilità di avere qualche tipo di risultato anormale. Per evitare ciò, utilizziamo un array statico nel nostro codice C++. Cerchiamo di capire l'esempio che abbiamo usato. In questa funzione, abbiamo dichiarato un array con 5 valori il tipo restituito come menzionato qui.







Int *funzione ()



Poiché il valore sarà un tipo intero, nell'esempio seguente è contrassegnato come int. Poiché abbiamo introdotto la funzione come puntatore, la funzione sarà di tipo puntatore. Dopo aver inserito i valori, viene restituito un array al programma principale.







Nel programma principale, abbiamo effettuato una chiamata di funzione. Per accettare il valore restituito dalla funzione, utilizzeremo una variabile intera. Quando l'array viene restituito, possiamo accedere facilmente ai suoi valori. I valori verranno stampati manualmente.

Int*puntatore=funzione();

Lo scopo del puntatore è individuare l'elemento presente nell'indice uno dell'array. In altre parole, mostra l'indirizzo del valore nell'array. Quindi, usiamo un prototipo di funzione che restituirà il puntatore.



Per vedere l'output dell'array restituito tramite la funzione, dobbiamo avere accesso al terminale Ubuntu nel caso di Linux. Ciò è dovuto al fatto che l'output è accessibile tramite il terminale Linux. In Linux, abbiamo bisogno di un compilatore per eseguire codici C++ scritti in qualsiasi editor di testo. Questa compilazione viene eseguita tramite G++. Il -o è usato per memorizzare l'output in un file. Qui abbiamo bisogno del file di output e del file del codice sorgente. Dopo la compilazione eseguiremo il codice:

$g++ -ofile1 file1.c
$./file1

Dall'output, possiamo vedere che l'array, che è stato inizializzato nella funzione, viene visualizzato nella funzione principale utilizzando un array statico, inizializzato manualmente e tramite i puntatori.

Restituire un array allocato dinamicamente utilizzando i puntatori

Gli array possono essere restituiti utilizzando l'allocazione dinamica. Gli array possono essere allocati dinamicamente usando la parola new. Rimarranno lì finché non li cancelleremo da soli. Gli array statici hanno dimensioni fisse, il che significa che è necessario fornire le dimensioni durante l'inizializzazione. Una volta creato l'array, è difficile aumentare le dimensioni in fase di esecuzione o in seguito. Ma nel caso dell'array dinamico, possiamo aggiungere più elementi ogni volta che vogliamo perché si espande quando inseriamo valori in esso. Quindi non abbiamo bisogno di specificare o identificare alcuna dimensione.

Andando verso l'esempio che abbiamo usato qui. Abbiamo usato un array dinamico con i puntatori come negli esempi precedenti, dove abbiamo usato i puntatori con gli array statici.

Int*funzione()

Dopo la dichiarazione della funzione, gli array vengono dichiarati dinamicamente:

Int*Vettore= nuovo int [100];

Il termine, nuovo, viene costantemente utilizzato per creare un array dinamico. Eseguiremo operazioni sull'array inserendo dei valori al suo interno. Successivamente, l'array viene restituito al programma principale:

Consideriamo ora la funzione principale. Abbiamo eseguito la chiamata alla funzione. Quando l'array viene restituito, aggiungiamo una variabile di tipo intero puntatore per accettare il valore.

Int*puntatore=funzione();

I valori che sono stati memorizzati nell'array vengono stampati manualmente. L'output è ottenuto attraverso il metodo di compilazione ed esecuzione.

Array di ritorno utilizzando le strutture

Le strutture sono i contenitori come gli array. Ma array contiene il valore dello stesso tipo di dati alla volta. E nel caso delle strutture, contengono più di un valore di tipo di dati. Abbiamo preso una struttura denominata sample. Qui, la dichiarazione dell'array è all'interno delle strutture anziché delle funzioni. Il tipo restituito è il nome della struttura. La variabile di struttura viene restituita al programma principale. La struttura usa la parola struct per la dichiarazione.

Esempio di struttura
{
Int arra[100];
};

Dopo la dichiarazione della struttura, abbiamo utilizzato una funzione in cui viene creato un oggetto di struttura. Questo oggetto servirà per accedere alla struttura. Questa funzione restituirà l'oggetto della struttura alla funzione principale in modo che possiamo stampare l'array attraverso questo oggetto. Una variabile otterrà i valori nella variabile. Questo valore è il numero intero fino al quale inseriremo i valori nell'array. Come in questo esempio, abbiamo selezionato 6 come numero. Quindi, i numeri verranno inseriti fino a 6 nell'array.

Funzione di esempio struttura(intn)

Ora, spostandoci verso il programma principale, abbiamo creato un oggetto per accedere all'array tramite questo:

Esempio di struttura x;

Dopo l'inizializzazione dell'oggetto, alla variabile viene aggiunto un valore fino al quale vogliamo che vengano inseriti i numeri nell'array. In una chiamata di funzione, passeremo il valore nel parametro:

X=funzione(n);

Avremo la visualizzazione utilizzando il ciclo for. I valori vengono visualizzati tramite l'oggetto dichiarato all'inizio del programma principale:

L'output indica che nel risultato sono mostrati 6 valori poiché abbiamo inserito 6 numeri nel programma.

Array di ritorno usando Std

Il C++ usa molti metodi per restituire un array dalla funzione. Uno di questi è tramite std::array. È un modello di struttura. Questa funzione fornisce anche altre due funzioni che sono size() e empty(). Viene restituito un nome di array che indica che l'intero array viene restituito al programma principale. Qui, aggiungeremo un array di file di intestazione. Oltre alla libreria, contiene tutte le funzioni dell'array.

#includere

Vettore<int,10>funzione()

Poiché possiamo restituire l'intero array con il suo nome, quindi nella dichiarazione di una funzione, utilizzeremo l'array come tipo restituito. I dati vengono inseriti nell'array. Successivamente, l'array verrà restituito al programma principale. Spostandosi verso la funzione principale, una variabile array accetterà l'array quando la funzione viene chiamata.

arr=funzione();

Anche in questo caso, il ciclo for verrà utilizzato per visualizzare i valori dell'array. Osserviamo l'output dall'immagine visualizzata di seguito. Poiché abbiamo utilizzato 10 taglie, verranno inseriti 0 numeri. Vengono quindi visualizzati:

Matrice di ritorno tramite contenitore vettoriale

Questo approccio è un array allocato dinamicamente. Come in questo caso, non è necessario specificare la dimensione dell'array. Non abbiamo bisogno di alcun parametro di dimensione qui. Usando questo esempio, dobbiamo aggiungere un'intestazione vettoriale nella libreria che contiene le funzionalità del vettore.

Spostandoci verso la funzione, dove il tipo restituito è anche un vettore int e contiene anche un puntatore a vettore come argomento nel parametro. Qui viene introdotto un array con il nome temp:

Vettore<int>Moltiplica matrice per due(costvettore<int> *arr)

La funzione moltiplicherà gli elementi dell'array per due utilizzando la funzione tmp.push_back(). Quindi, restituire il tmp. Una variabile di tipo automatico accetterà i valori dell'array dalla funzione. L'array contiene gli elementi al suo interno.

L'output mostra il funzionamento del contenitore vettoriale.

Conclusione

Nell'articolo di cui sopra, abbiamo descritto i cinque metodi più comunemente usati per spiegare la funzionalità di restituzione di un array dalla funzione.