Jak Zwrócić Tablicę?

Spisu treści:

Jak Zwrócić Tablicę?
Jak Zwrócić Tablicę?

Wideo: Jak Zwrócić Tablicę?

Wideo: Jak Zwrócić Tablicę?
Wideo: Excel Pivot Tables od podstaw do eksperta w pół godziny + Dashboard! 2024, Listopad
Anonim

Macierze są jedną z najprostszych form ustrukturyzowanego przechowywania danych. Ponieważ niepodzielne obszary pamięci są przeznaczone do przechowywania tablic jednowymiarowych, a większość języków programowania ma konstrukcje składniowe do ich deklaracji, są one intensywnie wykorzystywane jako bufory do przesyłania dużych ilości informacji do różnych (w tym bibliotecznych) funkcji. Z kolei funkcje czasami muszą zwracać tablicę.

Jak zwrócić tablicę?
Jak zwrócić tablicę?

Niezbędny

  • - Edytor tekstu;
  • - Kompilator i linker C lub C++.

Instrukcje

Krok 1

Zwróć dane z funkcji lub metody, umieszczając je w tablicy o stałej długości, przydzielonej przez obiekt wywołujący i przekazanej przez odwołanie. Zdefiniuj odpowiedni typ danych, na przykład: typedef int t_array10 [10]; Użyj go w deklaracji i implementacji wymaganej funkcji lub metody: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Wywołaj odpowiednio: int aNumbers [10];ReturnArray (aNumbers);Wadą tej metody jest to, że długość tablicy jest stała.

Krok 2

Zwróć dane tablicy, umieszczając je w buforze wyjściowym przydzielonym wywołującym, przekazywanym przez wskaźnik. Prototyp funkcji lub metody może zawierać parametr zadeklarowany zarówno w notacji tablicowej bez określenia rozmiaru: void ReturnArray (int anArray , int nSize) lub jako wskaźnik: void ReturnArray (int * pnArray, int nSize); przypadkach, parametr identyfikatora może być użyty w notacji tablicowej: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Ta metoda przekazywania tablic do funkcji i zwracania z nich danych tablicowych jest używana w przeważającej większości przypadków podczas tworzenia programów w C. Zauważ, że funkcje i metody, które przyjmują i zwracają dane w ten sposób, z reguły muszą posiadać dodatkowy parametr, przez który przekazywany jest rzeczywisty rozmiar bufora.

Krok 3

Zwraca tablicę utworzoną w funkcji lub metodzie. Formalnie w tym przypadku nie należy zwracać tablicy, ale wskaźnik do jej pierwszego elementu: int * ReturnArray () {int * pnArray = new int [10]; // praca z pnArray return pnArray;} // uzyskaj wskaźnik do utworzonej tablicy int * pnNumbers = ReturnArray (); // użyj delete pnNumbers; // usuń Ta metoda ma pewne ograniczenia. Tak więc tablica musi znajdować się na stercie. Dodatkowo jego usunięcie musi być wykonane metodą odpowiadającą stworzeniu (usuń w przypadku użycia nowego, darmowego dla malloc itp.).

Krok 4

Używaj klas kontenerów, aby wygodnie zwracać tablice podczas tworzenia programów w języku C++. Przykład tworzenia i zwracania tablicy, która jest obiektem klasy szablonów wektorowych ze standardowej biblioteki szablonów C++ określonej dla int, może wyglądać tak: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oTablica [0] = 100; oTablica [1] = 200; return oArray;} std:: vector oArray = ReturnArray ();Zauważ, że większość popularnych frameworków udostępnia zaawansowane klasy lub szablony klas tablic. Często wdrażają koncepcję niejawnego udostępniania danych za pomocą zliczania referencji i kopiowania przy zapisie. Dlatego zwracanie wartości takich tablic z funkcji odbywa się bardzo sprawnie i wiąże się z minimalnym zużyciem zasobów obliczeniowych.

Zalecana: