[C++] Wektor wskaźników do przesłania wyniku z osobnego wątku.
Ostatnio zmodyfikowano 2014-07-26 12:22
kkingstoun Temat założony przez niniejszego użytkownika |
[C++] Wektor wskaźników do przesłania wyniku z osobnego wątku. » 2014-07-26 11:06:00 Witam, uczę się programowania wielowątkowego, gdzie moim celem jest utworzenie nowego wątku, wykonaniu w nim kilku operacji i zwrócenie tablicy (vector). void * odczyt( void * i ) { int a = *(( int * ) i ); const string plike = "/home/poznan/PBS/Inula/symulacja/" + lisp[ a ]; char * y = new char[ plike.length() + 1 ]; std::strcpy( y, plike.c_str() ); ifstream file( y ); string line; std::vector < std::string > strs; vector < vector < double > * >* matr; int wier = 0; while( std::getline( file, line ) && !line.empty() ) { strs = string_split( line, ' ' ); matr->push_back( new vector < double > ); for( int ptk = 0; ptk < strs.size(); ++ptk ) { string num; num = strs[ ptk ]; double temp = atof( num.c_str() ); matr->at( wier )->push_back( temp ); } wier++; } cout << endl << plike << endl; return matr; }
pthread_create( & id[ i ], NULL, odczyt, ar[ i ] ); vector < vector < double > * > wynik; pthread_join( id[ i ],( void ** ) & wynik ); Czy ktoś mógłby mi podpowiedzieć a) jak wpisywać do takiej tablicy wartości? Problem mam w tym miejscu " matr->push_back(new vector <double>);" albo bezpośrednio jak zwrócić vector. |
|
Monika90 |
» 2014-07-26 11:37:53 Może użyj C++, czyli std::async i std::future. char * y = new char[ plike.length() + 1 ]; std::strcpy( y, plike.c_str() );
po co to new i strcpy? vector < vector < double > * >* matr;
wskaźnik do wektora wskaźników do wektora double... przesadziłeś z tymi gwiazdkami, naprawdę. Zmienna matr jest niezainicjalizowana, więc w tym miejscu: matr->push_back( new vector < double > ); dojdzie do katastrofy... |
|
kkingstoun Temat założony przez niniejszego użytkownika |
» 2014-07-26 12:22:01 "Może użyj C++, czyli std::async i std::future."
Ha, że też tego nie znałem! Z tego co widzę na pierwszy rzut oka, to to jest znacznie wydajniejsze i łatwiejsze w użyciu dziękuję!
|
|
« 1 » |