Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Klasa Vector

Ostatnio zmodyfikowano 2011-09-05 20:33
Autor Wiadomość
czarek1959
Temat założony przez niniejszego użytkownika
Klasa Vector
» 2011-09-05 18:23:53
Witam,

Mam taki prosty programik, który się kompiluje:
C/C++
#include <iostream>
#include <vector>

using namespace std;

struct st1
{
    vector < int > tab1;
};

struct st2
{
    vector < st1 > tab2;
};

int main()
{
    //.....   
    return 0;
}

Czy tak konstrukcja jest możliwa jako wektor wektorów i jak się do tego dobrać tzn. jak to wypełnić. Chodzi mi o 2-elementową tablicę wektorów
Uprzejma prośba o sugestie i pomoc.
Czarek
P-40549
pekfos
» 2011-09-05 18:36:22
ehhh
C/C++
vector < vector < int > > tab;
//..
tab[ 2 ][ 1 ] = 3;
P-40551
czarek1959
Temat założony przez niniejszego użytkownika
» 2011-09-05 18:48:35
Spróbowałem i problem w tym, że program się zawiesza - "wywala" po vector < vector < int > > tab.
Używam Code::Blocks.
I jeszcze jedno - jak w tym przypadku zastosować metodę push_back(...)?
Jeśli zrobię np. tab[0][0].push_back(3) do kompilator sygnalizuje błąd.
P-40552
pekfos
» 2011-09-05 18:57:48
pomyśl!!
C/C++
tab[ 0 ] //daje vector<int>
tab[ 0 ][ 0 ] //daje int (!!)
tab[ 0 ][ 0 ].push_back() //! blad
P-40554
m4tx
» 2011-09-05 18:58:20
» Kurs STL, C++Kontener tablicy (std::vector) lekcja

Przeczytaj dokładnie, co do słowa...

I zastosuj się do porad @up.
P-40555
czarek1959
Temat założony przez niniejszego użytkownika
» 2011-09-05 20:07:46
C/C++
vector < vector < int > > tab;
//..
tab[ 2 ][ 1 ] = 3;
Ok zostawmy rady poczytaj dokładnie, bo czytałem i nie daje to odpowiedzi na moje pytanie.
Pytanie do Pefkos'a - dlaczego powyższe nie działa.
P-40558
czarek1959
Temat założony przez niniejszego użytkownika
» 2011-09-05 20:33:56
Już sobie poradziłem więc zamykam temat.
Rady typu poczytaj sobie dokładnie lub a po co Ci to można sobie wsadzić w ...
Forum jest chyba po to aby sobie pomagać a odpowiedzi tego typu to uniwersalna metoda
pasująca do wszystkiego lub jak ktoś nie wie o co chodzi i jak rozwiązać problem.
Dla innych użytkowników (może się komuś kiedyś przyda):
C/C++
vector < vector < int > > tab;
// po czymś takim trzeba użyć np.
tab[ 0 ].resize( 3 );
// i wtedy można już zrobić
tab[ 0 ][ 0 ] = 5 // itd..

Dzięki Pefkos za pomoc.
P-40559
« 1 »
  Strona 1 z 1