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

Inicjalizacja wektora za pomocą konstruktora

Ostatnio zmodyfikowano 2013-04-01 14:47
Autor Wiadomość
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ść :)
C/C++
#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 ] ); //tutaj pewnie błąd??
    }
}

//*****************
int main()
{
    char t[] = { 'f', 'e', 'y', 's', 'w', 'h', 'o', 'p', 'r', 'a' };
    vector < char > v;
   
    //INICJALIZACJA VECTORA
    //vector<char> v(t, sizeof(t)); //zwykla inicjalizacja
   
    ini zapis( v, t );
}
P-79719
pekfos
» 2013-04-01 14:25:32
C/C++
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 ] ); //tutaj pewnie błąd??
    }
}
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/
C/C++
template < class InputIterator >
vector( InputIterator first, InputIterator last,
const allocator_type & alloc = allocator_type() );
/*
range constructor
Constructs a container with as many elements as the range [first,last), with each element constructed from its corresponding element in that range, in the same order.
*/
Więc..
C/C++
vector < char > v( t, t + ilosc );
P-79723
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?
P-79724
pekfos
» 2013-04-01 14:47:51
Wskaźnik na char.
C/C++
void f( char znak, char * nie_wiadomo_ile_znakow /* czyli tablica ;) */ );
Można też zapisać to tak:
C/C++
void f( char tablica_50_elementow[ 50 ] );
void g( char tablica[] );
P-79725
« 1 »
  Strona 1 z 1