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

dynamiczna tablica z dynamicznych tablic

Ostatnio zmodyfikowano 2010-12-26 21:30
Autor Wiadomość
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.
P-25597
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):
C/C++
int ** tab;
i potem dla każdego wskaźnika utworzyć tablicę

C/C++
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ęć:
C/C++
for( unsigned int i = 0; i < szerokosc; ++i )
     delete[] tab[ i ];

delete[] tab;
P-25598
malan
» 2010-12-26 20:10:24
C/C++
#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
P-25599
pekfos
» 2010-12-26 20:38:42
std::vector < std::vector < int > > vec;
??
P-25600
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.
P-25605
ison
» 2010-12-26 21:00:54
C/C++
class MyClass {
public:
    std::vector < std::vector < int > > vec;
};
?
P-25606
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).
P-25607
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

C/C++
std::vector < std::vector < int > > vec;
vec.resize( 1 );
vec[ 0 ].push_back( 12345 );
printf( "%d\n", vec[ 0 ][ 0 ] );
P-25608
« 1 » 2
  Strona 1 z 2 Następna strona