• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak stworzyć dwuwymiarową tablicę wektorową ?

Object Storage Arubacloud
0 głosów
871 wizyt
pytanie zadane 13 czerwca 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
Cześć

Pytanie chyba proste czy da się zrobić dwuwymiarową tablicę wektorową ? Może być drugi wymiar niedynamiczny chodź było by lepiej gdyby był :D

Wiem że w php chyba można zrobić tablicę w tablicy, ale takie dziwactwa to chyba tylko w php ;D

Mam nadzieje że się da, z góry dziękuje ;) Pozdrawiam!
komentarz 13 czerwca 2017 przez Kodeman Gaduła (4,480 p.)
Jak najbardziej można zrobić tablicę w tablicy w C++. Na tej samej zasadzie tworzy się wektor wektorów.

1 odpowiedź

+2 głosów
odpowiedź 13 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
wybrane 14 czerwca 2017 przez Shiro
 
Najlepsza
std::vector< std::vector<int> > vecInVec;

 

komentarz 13 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Czyli to jest po prostu vektor w wektorze, o nazwie tutaj vecInVec dobrze rozumiem ?

Jedno pytanie jak z niej korzystać? Tzn. jak dodać nazwijmy to nowy wiersz a jak nową kolumnę ? (Czy jest jakieś specjalistyczne nazewnictwo na moje wiersze i kolumny)

Dzięki na pewno użyje ;)
komentarz 13 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
std::vector< std::vector<int> > vec;

vec.push_back( std::vector<int> );
vec[0].push_back(10);
vec[0].push_back(20);
vec[0].push_back(30); //Tutaj oczywiście powinno się zastosować pętle :P

vec.push_back( {10,20,30} );
//vec[1][0] == 10;
//vec[1][1] == 20;
//vec[1][2] == 30;

 

komentarz 13 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)

Możesz też zrobić tak:
 

std::vector<std::vector<int>> vec = {
   {10,20,30,40},
   {15,36,864,123,234},
   {1,2,3}
};

 

komentarz 13 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Jeżeli chodzi o pierwszy kod:

    Nie rozumiem tego vec.push_back( {10,20,30} ); To jest jako że można to też zrobić tak? Czy te dane jakoś podwójnie wpisujemy ?

Wybacz moje nie ogarnięcie dopiero co poznałem wektory i nie czuje się jeszcze pewnie ;/

Dziękuje Ci
komentarz 13 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Co do kodu to chyba coś jest nie tak, ta linia wywołuje błąd:

vec.push_back( std::vector<int> );

Ponoć ten typ danych jest niedozwolony.
komentarz 14 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
Sorki, pisałem z pamięci bezpośrednio na forum.

http://ideone.com/X1newm
komentarz 14 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
Co do pierwszego twojego pytania.

W ten sposób można zapisywać tablice itp.

Np. masz klase Point w której masz dwie zmienne: int x oraz int y.

Masz funkcje

int func(Point p);

Jak ją wywołujesz, to możesz punkt zapisać tak:

func({10,20});
komentarz 14 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Przyznam się że trochę nie rozumiem ;/

Czy możesz napisać jak dodać wartość do takiej tablicy, a jak dodać wartość do wartości tablicy (jak dodać wiersz, a jak kolumnę)

Dziękuje Ci za pomoc!
komentarz 14 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)

Mam nadzieje że wiesz jak działają zwykłe tablice.
Dodajesz kolejny wiersz za pomocą funkcji push_back.
 

std::vector< std::vector<int> > vec;

//0 wierszy

vec.push_back(std::vector<int>());

//1 wiersz który ma zero kolumn.

vec[0].push_back(10);

//Odwołanie do pierwszego wiersza: vec[0].  Na jego rzecz, wywołujemy funkcje push_back(int), czyli dodajemy kolumnę dla tego wiersza.

//Zauważ że wektory nie muszą mieć takiej samej liczby kolumn w każdym wierszu.

 

komentarz 14 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Tak wiem jak działają zwykłe tablice.

O taki kod mi chodziło, dziękuje Ci

Podobne pytania

+1 głos
1 odpowiedź 234 wizyt
0 głosów
4 odpowiedzi 2,113 wizyt

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...