co zwraca vector.begin() ?

2010-11-29 19:13

Rejestracja: 10 lat temu

Ostatnio: 2 lata temu

0

Jest taka funkcja:

int* fun(int cos) //zwraca wskaznik
{
    int *wsk = &cos;
    return wsk;
}
cout << fun(2); //dziala, zwraca adres
cout << *fun(2); //dziala, zwraca wartosc tego na co wskazywalo wsk
vector<int> myvector;
for (int i=1; i<=5; i++) myvector.push_back(i);
cout << myvector.begin(); //błąd
cout << *myvector.begin(); //to juz działa

Dlaczego w linii "cout << myvector.begin();" dostaje błąd??

edytowany 3x, ostatnio: lofi, 2010-11-29 19:15

Pozostało 580 znaków

2010-11-29 19:37

Rejestracja: 15 lat temu

Ostatnio: 1 minuta temu

0

vector.begin() zwraca iterator, który ma przeciążony operator gwiazdki.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2010-11-29 19:59
Moderator

Rejestracja: 12 lat temu

Ostatnio: 2 godziny temu

0

Nie operator "gwiazdki" a dereferencji.


Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0