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

wczytywanie tablicy do vectora

Ostatnio zmodyfikowano 2015-06-18 12:34
Autor Wiadomość
rfid
Temat założony przez niniejszego użytkownika
wczytywanie tablicy do vectora
» 2015-06-18 10:34:57
Czy może mi wytłumaczyć dlaczego przekazując tablicę jako argument funkcji nie przepisuje mi się ona do wektora?
C/C++
int moje_liczby[] = { 16, 2, 77, 29 };
vector < int > dane( moje_liczby, moje_liczby + sizeof( moje_liczby ) / sizeof( int ) );

for( int i = 0; i < dane.size(); i++ )
{
    cout << dane[ i ] << " ";
}
To powyżej działa wszystko pięknie


A to już nie działa - przepisuje się jedynie pierwszy element.
C/C++
void a( int liczby[] )
{
    vector < int > dane( liczby, liczby + sizeof( liczby ) / sizeof( int ) );
    for( int i = 0; i < dane.size(); i++ )
    {
        cout << dane[ i ] << " ";
    }
   
}

int main()
{
    int moje_liczby[] = { 16, 2, 77, 29 };
    a( moje_liczby );
}

A na stringach to już całkiem mi krzaki wychodzą.
P-133724
darko202
» 2015-06-18 11:13:22
1.
https://pl.wikibooks.org/wiki​/C%2B%2B/Vector

...
Dodatkowo istnieje konstruktor przyjmujący liczbę elementów oraz wartość, jaką ma mieć każdy z nich.
 vector<string> tablica( 20, "przykladowy tekst" );
Ta tablica będzie miała dwadzieścia elementów, z czego wszystkie mają wartość: "przykladowy tekst".
...


2.
tworzy Ci się wektor - sprawdź co zawiera
P-133725
rfid
Temat założony przez niniejszego użytkownika
» 2015-06-18 11:21:44
Dobra z tablicą int sobie poradziłem tak:
C/C++
void a( int liczby[] )
{
    vector < int > dane( liczby, liczby + sizeof( liczby ) / sizeof( int ) );
    for( int i = 0; i < sizeof( liczby ); i++ )
    {
        dane[ i ] = liczby[ i ];
        cout << dane[ i ] << " ";
    }
   
}

Możesz podpowiedzieć jak zrobić to na string? Takie coś mi nie działa niestety.
C/C++
void a( string liczby[] )
{
    vector < string > dane( liczby, liczby + sizeof( liczby ) / sizeof( string ) );
    for( int i = 0; i < sizeof( liczby ) / sizeof( string ); i++ )
    {
        dane[ i ] = liczby[ i ];
        cout << dane[ i ] << " ";
    }
   
}

P-133726
pekfos
» 2015-06-18 12:34:54
C/C++
void a( int liczby[] )
{
    vector < int > dane( liczby, liczby + sizeof( liczby ) / sizeof( int ) );
liczby to wskaźnik, nie tablica. Ten wektor będzie miał 1 element.

Takie coś mi nie działa niestety.
Jw. Tu nie będzie w ogóle elementów w wektorze.
P-133728
« 1 »
  Strona 1 z 1