deklaracja tablicy przeslana jako argument funkcji
Ostatnio zmodyfikowano 2015-05-26 13:21
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. void def_tab( string nazwa_tab ) { int nazwa_tab[ 10 ]; } to oczywiście się nie kompiluje. |
|
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. |
|
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. |
|
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. |
|
NiceFox Temat założony przez niniejszego użytkownika |
» 2015-05-26 13:21:15 wklejam gotowca 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 ); }
|
|
« 1 » |