Fandom

C/C++

C array template

53strony na
tej wiki
Dodaj nową stronę
Dyskusja0 Udostępnij

Pod adresem http://www.3miasto.net/~chq/c/carray.txt znajdziecie szablon bezpiecznego zamiennika tablic z C, który dodatkowo ma mozliwosc definiowania od jakiej liczby chcemy indeksować tablicę(np.: od 1 zamiast od 0).

Przykłady kodu wykorzystującego wzorzec tablicy:

cplus::array<int, 10> arr_int(0);

Deklaruje tablice o nazwie arr_int, tablica ma 10 elementow, wszystkie elementy sa inicjowane wartoscia 0.

cplus::array<double, 10, 1> arr_double;

Deklaruje tablie arr_double o 10 elementach przy czym elementy te nie są inicjowane żadnymi wartosciami. Tablicę bedziemy indeksować od 1(przydatne w niektorych algorytmach numerycznych).

Jesli typ a mozna skonwertowac do typu b niejawnie tablice mozna przypisywac do siebie np.:

arr_double = arr_int;

Przypisania te mozna bezpiecznie stosować również wtedy, gdy indeksujemy tablice różnymi liczbami oraz również wtedy gdy wielkości tablic są różne. Wówczas zostanie skopiowana liczba elementow równa liczbie mniejszej tablicy.

Wzorca tablicy mozna też używać z szablonami STLowymi np.:

#include <algorithm>
#include "carray.hpp"

int get_next()
{
	static int i = 10;
	return i--;
}

int main()
{
  cplus::array<int, 10, 2> arr_int(0);
  std::generate(arr_int.begin(), arr_int.end(), get_next);
  std::sort(arr_int.begin(), arr_int.end());
  return 0;
}

Kod powyzej najpierw wypelnia tablicę arr_int od 10 do 1, a nastepnie sortuje ją. Po wykonaniu tego kodu tablica bedzie wypelniona wartosciami od 1 do 10.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki