Zwróć tablicę z funkcji C++

Return Array From Function C



Tablice to określone kontenery, które mają wartości tego samego typu danych. Funkcje w C++ wykonują operacje na tablicach, a te tablice są następnie zwracane do funkcji głównej. Istnieje wiele podejść do opisu tego zjawiska. W tym przewodniku wyjaśniono niektóre typowe metody:

Użyj wskaźników, aby zwrócić tablicę statyczną

Kiedy używamy normalnej tablicy, istnieje prawdopodobieństwo uzyskania nieprawidłowych wyników. Aby tego uniknąć, w naszym kodzie C++ używamy tablicy statycznej. Zrozummy przykład, którego użyliśmy. W tej funkcji zadeklarowaliśmy tablicę z 5 wartościami typu zwracanego, jak wspomniano tutaj.







Int *funkcja ()



Ponieważ wartość będzie typem całkowitym, jest oznaczona jako int w poniższym przykładzie. Ponieważ wprowadziliśmy funkcję jako wskaźnik, będzie to funkcja typu wskaźnikowego. Po wprowadzeniu wartości do programu głównego zwracana jest tablica.







W głównym programie wykonaliśmy wywołanie funkcji. Aby zaakceptować wartość zwróconą z funkcji, użyjemy zmiennej całkowitej. Gdy tablica zostanie zwrócona, możemy łatwo uzyskać dostęp do jej wartości. Wartości zostaną wydrukowane ręcznie.

Int*wskaźnik=funkcjonować();

Celem wskaźnika jest zlokalizowanie elementu, który jest obecny w indeksie pierwszym tablicy. Innymi słowy, pokazuje adres wartości w tablicy. Następnie używamy prototypu funkcji, który zwróci wskaźnik.



Aby zobaczyć dane wyjściowe tablicy zwracanej przez funkcję, musimy mieć dostęp do terminala Ubuntu w przypadku Linuksa. Wynika to z tego, że dane wyjściowe są dostępne przez terminal Linux. W Linuksie potrzebujemy kompilatora do uruchamiania kodów C++ napisanych w dowolnym edytorze tekstu. Ta kompilacja jest wykonywana przez G++. -o służy do przechowywania danych wyjściowych w pliku. Tutaj potrzebujemy pliku wyjściowego i pliku kodu źródłowego. Po kompilacji wykonamy kod:

$g++ -lubplik1 plik1.c
$./plik1

Z wyjścia widzimy tablicę, która została zainicjowana w funkcji, jest wyświetlana w funkcji main za pomocą tablicy statycznej, zainicjowanej ręcznie i za pomocą wskaźników.

Zwróć dynamicznie przydzieloną tablicę za pomocą wskaźników

Tablice można zwracać za pomocą alokacji dynamicznej. Tablice można dynamicznie alokować za pomocą słowa nowy. Pozostaną tam, dopóki sami ich nie usuniemy. Tablice statyczne mają stały rozmiar, co oznacza, że ​​musisz podać rozmiar podczas inicjalizacji. Po utworzeniu tablicy trudno jest zwiększyć rozmiar w czasie wykonywania lub później. Ale w przypadku tablicy dynamicznej możemy dodać więcej elementów, kiedy tylko chcemy, ponieważ rozszerza się ona, gdy wprowadzamy do niej wartości. Nie musimy więc określać ani identyfikować żadnego rozmiaru.

Idąc w kierunku przykładu, którego tu użyliśmy. Użyliśmy tablicy dynamicznej ze wskaźnikami, jak w poprzednich przykładach, gdzie użyliśmy wskaźników ze statycznymi tablicami.

Int*funkcjonować()

Po deklaracji funkcji tablice są deklarowane dynamicznie:

Int*szyk= Nowy int [100];

Termin nowy jest stale używany do tworzenia tablicy dynamicznej. Wykonamy operacje na tablicy wpisując w niej wartości. Następnie tablica jest zwracana do głównego programu:

Rozważmy teraz główną funkcję. Zrobiliśmy wywołanie funkcji. Gdy tablica jest zwracana, dodajemy zmienną typu wskaźnikowego typu integer, aby zaakceptować wartość.

Int*wskaźnik=funkcjonować();

Wartości, które były przechowywane w tablicy, są drukowane ręcznie. Dane wyjściowe uzyskuje się za pomocą metody kompilacji i wykonania.

Zwróć tablicę za pomocą struktur

Struktury to kontenery, takie jak tablice. Ale tablica zawiera jednocześnie wartość tego samego typu danych. A w przypadku struktur zawierają więcej niż jedną wartość typu danych. Pobraliśmy strukturę o nazwie próbka. Tutaj deklaracja tablicy znajduje się wewnątrz struktur zamiast funkcji. Typ zwracany to nazwa struktury. Zmienna strukturalna jest zwracana do programu głównego. Struktura używa słowa struct do deklaracji.

Próbka struktury
{
wewn[100];
};

Po deklaracji struktury użyliśmy funkcji, w której tworzony jest obiekt struktury. Ten obiekt będzie używany do uzyskania dostępu do struktury. Ta funkcja zwróci obiekt struktury do funkcji głównej, dzięki czemu możemy wydrukować tablicę za pośrednictwem tego obiektu. Zmienna otrzyma wartości w zmiennej. Ta wartość jest liczbą całkowitą, do której będziemy wprowadzać wartości w tablicy. Podobnie jak w tym przykładzie, wybraliśmy 6 jako liczbę. Tak więc liczby zostaną wpisane do 6 w tablicy.

Funkcja próbki struktury(intn)

Teraz, przechodząc do głównego programu, stworzyliśmy obiekt, który umożliwia dostęp do tablicy za pomocą tego:

Próbka struktury x;

Po zainicjowaniu obiektu do zmiennej dodawana jest wartość, do której chcemy wprowadzić liczby do tablicy. W wywołaniu funkcji przekażemy wartość w parametrze:

x=funkcjonować(n);

Wyświetlacz uzyskamy za pomocą pętli for. Wartości wyświetlane są poprzez obiekt zadeklarowany na starcie programu głównego:

Wynik wskazuje, że w wyniku jest wyświetlanych 6 wartości, ponieważ w programie wprowadziliśmy 6 liczb.

Zwróć tablicę za pomocą standardowego

C++ używa wielu metod do zwrócenia tablicy z funkcji. Jednym z nich jest std::array. Jest to szablon struktury. Ta funkcja zapewnia również dwie dodatkowe funkcje, którymi są size () i empty (). Zwracana jest nazwa tablicy, która wskazuje, że do programu głównego zwracana jest cała tablica. Tutaj dodamy tablicę plików nagłówkowych. Oprócz biblioteki zawiera wszystkie funkcje tablicy.

#włączać

szyk<int,10>funkcjonować()

Ponieważ możemy zwrócić całą tablicę z jej nazwą, więc w deklaracji funkcji użyjemy tablicy jako typu zwracanego. Dane są wprowadzane do tablicy. Następnie tablica zostanie zwrócona do głównego programu. Idąc w kierunku funkcji głównej, zmienna tablicowa przyjmie tablicę, gdy funkcja zostanie wywołana.

Arr=funkcjonować();

Ponownie, pętla for będzie używana do wyświetlania wartości tablicowych. Obserwujemy wyjście z obrazka pokazanego poniżej. Ponieważ użyliśmy 10 rozmiarów, zostanie wprowadzonych 0 cyfr. Stąd wyświetlane są:

Zwróć tablicę przez kontener wektorowy

To podejście to dynamicznie alokowana tablica. Podobnie jak w tym przypadku, nie ma potrzeby określania rozmiaru tablicy. Nie potrzebujemy tutaj żadnego parametru rozmiaru. Korzystając z tego przykładu, musimy dodać nagłówek wektora do biblioteki, która zawiera funkcje wektora.

Idąc w kierunku funkcji, w której zwracany typ jest również wektorem int, a także zawiera wskaźnik wektora jako argument w parametrze. W tym miejscu wprowadzono tablicę o nazwie temp:

Wektor<int>Pomnóż tablicę przez dwa(staływektor<int> *Arr)

Funkcja pomnoży elementy tablicy przez dwa za pomocą funkcji tmp.push_back(). Następnie zwróć tmp. Zmienna typu automatycznego przyjmie wartości tablicy z funkcji. Tablica zawiera zawarte w niej elementy.

Dane wyjściowe pokazują działanie kontenera wektorów.

Wniosek

We wspomnianym artykule opisaliśmy pięć najczęściej używanych metod wyjaśniających funkcjonalność zwracania tablicy z funkcji.