Inicjalizacja wektora za pomocą konstruktora
Ostatnio zmodyfikowano 2013-04-01 14:47
kasiaaa Temat założony przez niniejszego użytkownika |
Inicjalizacja wektora za pomocą konstruktora » 2013-04-01 14:06:59 Cześć, Mam problem z pewnym programem. Potrzebuję zainicjalizować wektor zawierający typ char za pomocą konstruktora wartościami z tablicy. Męczę się z tym już dłuższy czas i już nie mam pomysłów jak to zrobić. Będę bardzo wdzięczna za pomoc. Dopiero zaczynam z c++ więc proszę o wyrozumiałość :) #include<iostream> #include<vector>
using namespace std;
class ini { public: ini( vector < char > moj_vector, char czym_zapelniam ); };
ini::ini( vector < char > moj_vector, char czym_zapelniam ) { for( int i = 0; i < sizeof( czym_zapelniam ); i++ ) { moj_vector.push_back( czym_zapelniam[ i ] ); } }
int main() { char t[] = { 'f', 'e', 'y', 's', 'w', 'h', 'o', 'p', 'r', 'a' }; vector < char > v; ini zapis( v, t ); } |
|
pekfos |
» 2013-04-01 14:25:32 ini::ini( vector < char > moj_vector, char czym_zapelniam ) { for( int i = 0; i < sizeof( czym_zapelniam ); i++ ) { moj_vector.push_back( czym_zapelniam[ i ] ); } } char to nie to samo, co tablica znaków, a elementy dodajesz do lokalnej kopii vectora. Jeśli chodzi o inicjalizację vectora, konstruktorem vectora, to wystarczyło zajrzeć do dokumentacji: http://www.cplusplus.com/reference/vector/vector/vector/template < class InputIterator > vector( InputIterator first, InputIterator last, const allocator_type & alloc = allocator_type() );
Więc.. vector < char > v( t, t + ilosc );
|
|
kasiaaa Temat założony przez niniejszego użytkownika |
» 2013-04-01 14:39:05 Aha, czyli wystarczy tylko tyle a ja kombinuję ;) Dziękuję bardzo :D A jeszcze jedno pytanie: co należałoby wpisać zamiast tego char? |
|
pekfos |
» 2013-04-01 14:47:51 Wskaźnik na char. void f( char znak, char * nie_wiadomo_ile_znakow );
Można też zapisać to tak: void f( char tablica_50_elementow[ 50 ] ); void g( char tablica[] );
|
|
« 1 » |