dynamiczna tablica z dynamicznych tablic
Ostatnio zmodyfikowano 2010-12-26 21:30
inny1997 Temat założony przez niniejszego użytkownika |
dynamiczna tablica z dynamicznych tablic » 2010-12-26 19:57:18 czy jest możliwe stworzenie dynamicznej tablicy z dynamicznych tablic.
próbowałem coś takiego
std::vector < (std::vector <int> tab_ob) > tab_ob;
ale się nie udało. |
|
ison |
» 2010-12-26 20:06:04 raz mówisz o dynamicznej tablicy dynamicznych tablic a raz o kontenerze std::vector z stl'a możesz zadeklarować wskaźnik na wskaźnik (lub na tablicę wskaźników): i potem dla każdego wskaźnika utworzyć tablicę const unsigned int szerokosc = 10; const unsigned int wysokosc = 10;
int ** tab; tab = new int *[ szerokosc ]; for( unsigned int i = 0; i < szerokosc; ++i ) tab[ i ] = new int[ wysokosc ];
pamiętaj że potem musisz odpowiednio zwolnić pamięć: for( unsigned int i = 0; i < szerokosc; ++i ) delete[] tab[ i ];
delete[] tab;
|
|
malan |
» 2010-12-26 20:10:24 #include <iostream> #include <vector>
typedef std::vector < int > vectorInt;
int main() { std::vector < vectorInt > ints; vectorInt int1, int2; int1.push_back( 69 ); int1.push_back( 666 ); int2.push_back( 777 ); int2.push_back( - 1 ); ints.push_back( int1 ); ints.push_back( int2 ); for( std::vector < vectorInt >::iterator it = ints.begin(); it != ints.end(); ++it ) { for( std::vector < int >::iterator it2 = it->begin(); it2 != it->end(); ++it2 ) { std::cout <<* it2 << std::endl; } std::cout << "==========" << std::endl; } std::cin.sync(); std::cin.get(); return 0; } Fajnie to wygląda.., ale czy to jest poprawne, to nie wiem... ;p |
|
pekfos |
» 2010-12-26 20:38:42 std::vector < std::vector < int > > vec; ?? |
|
inny1997 Temat założony przez niniejszego użytkownika |
» 2010-12-26 20:57:56 zastanawiam się jak utworzyć taką tablice(kontener) w klasie i nie ustalać dokładnej ilości tablic(kontenerów) składowych ,a w klasie trzeba deklarować wszystkie tablice. |
|
ison |
» 2010-12-26 21:00:54 class MyClass { public: std::vector < std::vector < int > > vec; };
? |
|
inny1997 Temat założony przez niniejszego użytkownika |
» 2010-12-26 21:05:34 a jak dodasz do tego nowy element(czyli kolejną tablice(kontener)) tej tablicy(kontenera). |
|
ison |
» 2010-12-26 21:12:38 vector posiada metodę push_back(), którą możesz dodawać nowy element i resize(), którą określasz rozmiar kontenera std::vector < std::vector < int > > vec; vec.resize( 1 ); vec[ 0 ].push_back( 12345 ); printf( "%d\n", vec[ 0 ][ 0 ] );
|
|
« 1 » 2 |