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

deklaracja tablicy przeslana jako argument funkcji

Ostatnio zmodyfikowano 2015-05-26 13:21
Autor Wiadomość
NiceFox
Temat założony przez niniejszego użytkownika
deklaracja tablicy przeslana jako argument funkcji
» 2015-05-25 23:10:54
potrzebuje zrobić funkcje, która będzie deklarowała tablicę na podstawie argumentu funkcji.

C/C++
void def_tab( string nazwa_tab )
{
    int nazwa_tab[ 10 ];
}

to oczywiście się nie kompiluje.
P-132794
Monika90
» 2015-05-25 23:25:00
Tak się nie da.

Jeżeli chcesz mieć w programie kilka tablic i odwoływać się do nich za pomocą nazwy przechowywanej w std::string, to takie rzeczy jak
std::map<std::string, std::vector<int>>
albo std::map<std::string, std::array<int, 10>>
mogą być tym o co Ci chodzi.
P-132796
NiceFox
Temat założony przez niniejszego użytkownika
» 2015-05-25 23:32:01
moją intencją jest odczytanie, katalogu z plikami, i podesłanie nazw plików do funkcji,
i zadeklarowanie tablicy, dla każdego pliku.
P-132797
michal11
» 2015-05-26 01:36:58
Jeśli dobrze zrozumiałem to potrzebujesz vectora vectorów czyli
vector < vector < string > > tab;
.
Przykładowo każdy wiersz będzie odpowiadał pojedynczemu plikowi, a kolumna to twoja pożądana tablica dla każdego pliku.
P-132801
NiceFox
Temat założony przez niniejszego użytkownika
» 2015-05-26 13:21:15
wklejam gotowca
C/C++
class MyMap
    : public std::map < std::string, std::vector < int > >
{
public:
    MyMap() { }
    ~MyMap() { };
   
    void find( std::string str )
    {
        std::map < std::string, std::vector < int > >::iterator it;
       
        it = std::map < std::string, std::vector < int > >::find( str );
        std::vector < int > intvec = it->second;
       
        for( int i = 0; i < intvec.size(); i++ )
        {
            std::cout << intvec[ i ] << "\t";
        }
        std::cout << std::endl;
    }
   
    void insert( std::string str, int number )
    {
        std::vector < int > numvector;
        numvector.push_back( number );
        std::map < std::string, std::vector < int > >::insert(
        std::make_pair( str, numvector ) );
    }
};

int main()
{
    string a = "one", b = "two", c = "three";
   
    MyMap amap;
    amap.insert( a, 1 );
    amap.insert( b, 2 );
    amap.insert( c, 3 );
    amap[ c ].push_back( 3 );
    amap[ b ].push_back( 2 );
    amap[ a ].push_back( 100 );
   
   
    amap.find( a );
    amap.find( b );
    amap.find( c );
}
P-132810
« 1 »
  Strona 1 z 1