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

Operacje na tekstach

Ostatnio zmodyfikowano 2010-11-08 01:25
Autor Wiadomość
pawelekster
Temat założony przez niniejszego użytkownika
Operacje na tekstach
» 2010-11-08 00:43:20
Co oznaczają parametry funkcji, której nagłówek wygląda następująco:

int ilosc_slow(const string & napis)

Chodzi mi przede wszystkim o symbol "&".
Czy nie ma tu błędu i czy powinno być może "int ilosc_slow(const string &napis)" ?

Pozdrawiam
Paweł
P-23693
DejaVu
» 2010-11-08 01:03:10
Zapis
void funkcja( const blabla & nazwa_argumentu )
 zapobiega tworzeniu kopii obiektu - pracujesz na oryginalnych danych, dzięki czemu nie marnujesz zasobów komputera np. na kopiowanie miliona znaków tekstu. Prosty przykład działania referencji:
C/C++
void funkcja( int & zmienna )
{
    zmienna++; //funkcja w rzeczywistości pracuje na zmiennej, która została przekazana poprzez argument w wywołaniu funkcji. (w tym przypadku: funkcja(a);).
}

int a = 1;
funkcja( a );
printf( "a = %d\n", a ); //wypisze: a = 2
P-23694
pawelekster
Temat założony przez niniejszego użytkownika
» 2010-11-08 01:10:40
Gdyby nie było symbolu "&", to też by zadziałało? Chyba...
ale generalnie w tym wypadku (mojej funkcji) argumentem jest stała łańcuchowa?
P-23696
DejaVu
» 2010-11-08 01:18:47
C/C++
#include <cstdio>
#include <vector>

typedef std::vector < char > blabla;

void funkcja1( const blabla & x )
{
    printf( "dlugosc = %d\n", x.size() );
}

void funkcja2( const blabla x )
{
    printf( "dlugosc = %d\n", x.size() );
}

int main()
{
    blabla zmienna;
    for( size_t i = 0; i < 1024 * 1024; i++ )
         zmienna.push_back( 'a' );
   
    funkcja1( zmienna );
    //  funkcja2(zmienna);
    return 0;
}
Sprawdź sobie szybkość działania z funkcją pierwszą i drugą (nie kompilowałem, więc mogą być błędy składniowe).

/edit:
Odpowiadając natomiast na Twoje powyższe pytanie: po prostu sprawdź :) to jest najlepsza metoda nauki. Zmaganie się z problemami zmusza do myślenia, natomiast klepanie postów na forum do czytania i zapamiętywania. Na dłużej zapamiętasz gdy to będzie efektem Twojego myślenia, a nie przeczytaniem odpowiedzi. Są rzeczy o które oczywiście warto pytać, bowiem nie da się wydedukować (bądź zajmie zbyt dużo czasu dojście do ewentualnej odpowiedzi), natomiast inne jak sam zaproponowałeś można po prostu przetestować.
P-23698
pawelekster
Temat założony przez niniejszego użytkownika
» 2010-11-08 01:24:47
Rozumiem, wielkie dzięki :)
Programowałem kiedyś w Pascalu, Basicu, Logo itp.
a tutaj się przekopuję przez składnię i struktury, bo chcę trochę pomóc dziecku ;)

Dobrej nocy:)
P-23699
DejaVu
» 2010-11-08 01:25:35
Spoko luz, dobranoc :)
P-23700
« 1 »
  Strona 1 z 1