Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
solis Forumaš(ica)
Pridružen/a: 18. 10. 2011. (15:25:42) Postovi: (1)16
|
|
[Vrh] |
|
Pavlek Forumaš(ica)
Pridružen/a: 30. 11. 2011. (21:05:53) Postovi: (E)16
Spol:
|
Postano: 21:59 sri, 22. 5. 2013 Naslov: |
|
|
Koja su ograničenja na dimenzije matrice, ako postoje ??? i ovaj DataFrameR::iterator, kad se šeće po retcima, znači li to da treba vraćati pokazivač na redak, ili ime tog retka, ili nešto drugo ???
Koja su ograničenja na dimenzije matrice, ako postoje ??? i ovaj DataFrameR::iterator, kad se šeće po retcima, znači li to da treba vraćati pokazivač na redak, ili ime tog retka, ili nešto drugo ???
|
|
[Vrh] |
|
Loo Forumaš(ica)
Pridružen/a: 11. 06. 2012. (16:02:07) Postovi: (D0)16
Spol:
|
Postano: 22:17 sri, 22. 5. 2013 Naslov: |
|
|
[quote="Pavlek"]Koja su ograničenja na dimenzije matrice, ako postoje ??? i ovaj DataFrameR::iterator, kad se šeće po retcima, znači li to da treba vraćati pokazivač na redak, ili ime tog retka, ili nešto drugo ???[/quote]
mislim da idejno nema ograničenja, dimenzije zadaješ unosom.
iterator vraća redak u obliku novog DataFramerR-a (kad bi vraćao pokazivač na redak ne bi ti radilo cout << *i u testnom primjeru, jer si operator << definirao za DataFrameR i ne mora raditi za to nešto u čemu čuvaš retke)
EDIT: mislila sam na operator *, tj *iterator
sam iterator je struct, ne vraća ništa (pogledaj rješeni primjer s 8. vježbi
lista.cpp)
Pavlek (napisa): | Koja su ograničenja na dimenzije matrice, ako postoje ??? i ovaj DataFrameR::iterator, kad se šeće po retcima, znači li to da treba vraćati pokazivač na redak, ili ime tog retka, ili nešto drugo ??? |
mislim da idejno nema ograničenja, dimenzije zadaješ unosom.
iterator vraća redak u obliku novog DataFramerR-a (kad bi vraćao pokazivač na redak ne bi ti radilo cout << *i u testnom primjeru, jer si operator << definirao za DataFrameR i ne mora raditi za to nešto u čemu čuvaš retke)
EDIT: mislila sam na operator *, tj *iterator
sam iterator je struct, ne vraća ništa (pogledaj rješeni primjer s 8. vježbi
lista.cpp)
|
|
[Vrh] |
|
Loo3 Gost
|
|
[Vrh] |
|
27re Forumaš(ica)
Pridružen/a: 06. 10. 2010. (16:07:02) Postovi: (17)16
|
|
[Vrh] |
|
GauSs_ Moderator
Pridružen/a: 28. 01. 2004. (21:01:17) Postovi: (53C)16
Spol:
Lokacija: 231
|
Postano: 8:14 čet, 23. 5. 2013 Naslov: |
|
|
[quote="27re"]Trebamo li DataFrameR::iterator-u implementirati još neki osim ova 3 operatora ( * , != , ++) pošto su oni za šetnju po redcima dovoljni ?[/quote]
ne
27re (napisa): | Trebamo li DataFrameR::iterator-u implementirati još neki osim ova 3 operatora ( * , != , ++) pošto su oni za šetnju po redcima dovoljni ? |
ne
_________________ The purpose of life is to end
Prosle su godine kolokviji bili laksi, zar ne?
|
|
[Vrh] |
|
znz Gost
|
|
[Vrh] |
|
Loo Forumaš(ica)
Pridružen/a: 11. 06. 2012. (16:02:07) Postovi: (D0)16
Spol:
|
Postano: 10:07 sub, 25. 5. 2013 Naslov: |
|
|
vrlo glupo pitanje - moramo li se mi nekako pobrinuti za slučaj wprod(0)?
i samo da provjerim, operator[ ](vector<string("imena redaka")>) bira neke retke iz DataFrameR-a, ali taj vektor se ne mora sastojati isključivo od imena redaka? u slučaju DataFrameR-a A,B,C,D i vektora A,M,N,O,P se vraca DataFrameR s retkom A?
vrlo glupo pitanje - moramo li se mi nekako pobrinuti za slučaj wprod(0)?
i samo da provjerim, operator[ ](vector<string("imena redaka")>) bira neke retke iz DataFrameR-a, ali taj vektor se ne mora sastojati isključivo od imena redaka? u slučaju DataFrameR-a A,B,C,D i vektora A,M,N,O,P se vraca DataFrameR s retkom A?
|
|
[Vrh] |
|
GauSs_ Moderator
Pridružen/a: 28. 01. 2004. (21:01:17) Postovi: (53C)16
Spol:
Lokacija: 231
|
Postano: 10:35 sub, 25. 5. 2013 Naslov: |
|
|
[quote="znz"]u koliko različitih mainova će se testirati funktori i fje nad njima, ako smijem znati? :D[/quote]
barem 2, najvise 4
[size=9][color=#999999]Added after 36 seconds:[/color][/size]
[quote="Loo"]vrlo glupo pitanje - moramo li se mi nekako pobrinuti za slučaj wprod(0)?
[/quote]
ne
[quote]
i samo da provjerim, operator[ ](vector<string("imena redaka")>) bira neke retke iz DataFrameR-a, ali taj vektor se ne mora sastojati isključivo od imena redaka? u slučaju DataFrameR-a A,B,C,D i vektora A,M,N,O,P se vraca DataFrameR s retkom A?[/quote]
slat cu samo imena redaka
znz (napisa): | u koliko različitih mainova će se testirati funktori i fje nad njima, ako smijem znati? |
barem 2, najvise 4
Added after 36 seconds:
Loo (napisa): | vrlo glupo pitanje - moramo li se mi nekako pobrinuti za slučaj wprod(0)?
|
ne
Citat: |
i samo da provjerim, operator[ ](vector<string("imena redaka")>) bira neke retke iz DataFrameR-a, ali taj vektor se ne mora sastojati isključivo od imena redaka? u slučaju DataFrameR-a A,B,C,D i vektora A,M,N,O,P se vraca DataFrameR s retkom A? |
slat cu samo imena redaka
_________________ The purpose of life is to end
Prosle su godine kolokviji bili laksi, zar ne?
|
|
[Vrh] |
|
PermutiranoPrase Forumaš(ica)
Pridružen/a: 10. 09. 2011. (16:08:19) Postovi: (F4)16
Spol:
|
Postano: 11:34 sub, 25. 5. 2013 Naslov: |
|
|
Nikako mi ne može proraditi cout << E==D. Cout se ponaša kao da treba ispisati matricu, a ne bool rezultat ove operacije. cout (E==D) prepoznaje bool i radi. Ovo je kod:
[code:1]
struct DataFrameR
{
int brRed,brStup;
vector < string > imena;
vector < vector <int> > M;
DataFrameR ( void );
// itd
};
istream& operator>> ( istream& f, DataFrameR& A );
ostream& operator<< ( ostream& f, DataFrameR& A );
bool operator== ( const DataFrameR& A, const DataFrameR& B );
// one mi nisu friend unutar strukture
ostream& operator<< ( ostream& f, const DataFrameR& A )
{
int i, j;
for ( i = 0; i < A.brRed; ++i )
{
f << A.imena[i] << "\t";
for ( j = 0; j < A.brStup; ++j )
f << A.M[i][j] << " ";
f << endl;
}
return f;
}
bool operator== ( const DataFrameR& A, const DataFrameR& B )
{
if ( A.brRed != B.brRed || A.brStup != B.brStup )
return false;
int i, j;
for ( i = 0; i < A.brRed; ++i )
for ( j = 0; j < A.brStup; ++j )
if ( A.M[i][j] != B.M[i][j] )
return false;
return true;
} [/code:1]
I htjela bi natjerati da mi radi wprod preko proda. Sad imam ovako:
[code:1]int prod::operator() ( vector<int> v )
{
int p=1;
vector <int> :: iterator i;
for ( i = v.begin(); i != v.end(); ++i )
p *= (*i);
return p;
};
double wprod::operator() ( vector <int> v )
{
int p=1;
vector <int> :: iterator i;
for ( i = v.begin(); i != v.end(); ++i )
p *= (*i);*
// umjesto gornjeg istog dijela bi bilo dobro pozvati prod na v i pridružiti ga p, ali uvijek mi javlja error
return p/x;
}[/code:1]
Cijenim svaku pomoć. :)
Nikako mi ne može proraditi cout << E==D. Cout se ponaša kao da treba ispisati matricu, a ne bool rezultat ove operacije. cout (E==D) prepoznaje bool i radi. Ovo je kod:
Kod: |
struct DataFrameR
{
int brRed,brStup;
vector < string > imena;
vector < vector <int> > M;
DataFrameR ( void );
// itd
};
istream& operator>> ( istream& f, DataFrameR& A );
ostream& operator<< ( ostream& f, DataFrameR& A );
bool operator== ( const DataFrameR& A, const DataFrameR& B );
// one mi nisu friend unutar strukture
ostream& operator<< ( ostream& f, const DataFrameR& A )
{
int i, j;
for ( i = 0; i < A.brRed; ++i )
{
f << A.imena[i] << "\t";
for ( j = 0; j < A.brStup; ++j )
f << A.M[i][j] << " ";
f << endl;
}
return f;
}
bool operator== ( const DataFrameR& A, const DataFrameR& B )
{
if ( A.brRed != B.brRed || A.brStup != B.brStup )
return false;
int i, j;
for ( i = 0; i < A.brRed; ++i )
for ( j = 0; j < A.brStup; ++j )
if ( A.M[i][j] != B.M[i][j] )
return false;
return true;
} |
I htjela bi natjerati da mi radi wprod preko proda. Sad imam ovako:
Kod: | int prod::operator() ( vector<int> v )
{
int p=1;
vector <int> :: iterator i;
for ( i = v.begin(); i != v.end(); ++i )
p *= (*i);
return p;
};
double wprod::operator() ( vector <int> v )
{
int p=1;
vector <int> :: iterator i;
for ( i = v.begin(); i != v.end(); ++i )
p *= (*i);*
// umjesto gornjeg istog dijela bi bilo dobro pozvati prod na v i pridružiti ga p, ali uvijek mi javlja error
return p/x;
} |
Cijenim svaku pomoć.
|
|
[Vrh] |
|
El_Loco Forumaš(ica)
Pridružen/a: 26. 05. 2012. (15:25:04) Postovi: (31)16
Spol:
|
|
[Vrh] |
|
PermutiranoPrase Forumaš(ica)
Pridružen/a: 10. 09. 2011. (16:08:19) Postovi: (F4)16
Spol:
|
|
[Vrh] |
|
Gost
|
Postano: 12:15 sub, 25. 5. 2013 Naslov: |
|
|
Ispricavam se na otvaranju novog posta i sto dobro nisam definirao pitanje.
Dakle ovako, kopiram tekst pitanja :"Kad imamo ugniježđenu klasu iterator i unutra ostream operator*, ako ne proslijedim nikakve argumente u funkciju radi ok, ali program onda ispisuje segmentation fault jer mu funkcija nije vratila ostream objekt. Ako zelim normalno kreirati funkciju sa parametrima (ostream &out) program javlja gresku pri kompajliranju, ali ako komentiram liniju u glavnom programu cout<<*i kod ispisa onda kompajlira kako treba".
Primjer koda:
[code:1] #include <iostream>
#include <vector>
#include <string>
using namespace std;
class DataFrameR{
public:
DataFrameR(){
}
int a;
class iterator{
int a;
public:
iterator(){
}
ostream & operator * (std::ostream & s) {
//
}
};
};
int main(){
DataFrameR::iterator i;
//cout<<*i;
return 0;
}[/code:1]
Dakle, ako maknem komentare s cout<<*i onda kompajler javlja pogresku da su krivo proslijedeni parametri. Ta linija funkcionira jedino ako onda napravim slijedece :
ostream & operator*(){
//cout<<endl;
}
, ali onda posto ne dereferenciram ostream operator mi javlja segmentation fault, a ako napravim cout<<endl; na kraju te funkcije onda mi ispisuje neke adrese cudne. Jel ima neki elegantniji nacin za ovo srediti [code:1][/code:1]
Ispricavam se na otvaranju novog posta i sto dobro nisam definirao pitanje.
Dakle ovako, kopiram tekst pitanja :"Kad imamo ugniježđenu klasu iterator i unutra ostream operator*, ako ne proslijedim nikakve argumente u funkciju radi ok, ali program onda ispisuje segmentation fault jer mu funkcija nije vratila ostream objekt. Ako zelim normalno kreirati funkciju sa parametrima (ostream &out) program javlja gresku pri kompajliranju, ali ako komentiram liniju u glavnom programu cout<<*i kod ispisa onda kompajlira kako treba".
Primjer koda:
Kod: | #include <iostream>
#include <vector>
#include <string>
using namespace std;
class DataFrameR{
public:
DataFrameR(){
}
int a;
class iterator{
int a;
public:
iterator(){
}
ostream & operator * (std::ostream & s) {
//
}
};
};
int main(){
DataFrameR::iterator i;
//cout<<*i;
return 0;
} |
Dakle, ako maknem komentare s cout<<*i onda kompajler javlja pogresku da su krivo proslijedeni parametri. Ta linija funkcionira jedino ako onda napravim slijedece :
ostream & operator*(){
//cout<<endl;
}
, ali onda posto ne dereferenciram ostream operator mi javlja segmentation fault, a ako napravim cout<<endl; na kraju te funkcije onda mi ispisuje neke adrese cudne. Jel ima neki elegantniji nacin za ovo srediti
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
znz Gost
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 18:04 sub, 25. 5. 2013 Naslov: |
|
|
[quote="znz"]mozda glupo pitanje, ali...
kad ćete zvati funkciju apply s prod, oće to izgledat ovako:
[tt]D.apply(prod(), rez);[/tt] ili [tt] D.apply(prod, rez);[/tt]
ili nešto treće?[/quote]
Ovo drugo se neće kompajlirati. Skoro sigurno ova prva sintaksa.
Može proći još jedino:
[code:1]prod getProd() {...}
D.apply(prod(), rez);
prod p;
D.apply(p, rez);
D.apply(getProd(), rez);
[/code:1]
znz (napisa): | mozda glupo pitanje, ali...
kad ćete zvati funkciju apply s prod, oće to izgledat ovako:
D.apply(prod(), rez); ili D.apply(prod, rez);
ili nešto treće? |
Ovo drugo se neće kompajlirati. Skoro sigurno ova prva sintaksa.
Može proći još jedino:
Kod: | prod getProd() {...}
D.apply(prod(), rez);
prod p;
D.apply(p, rez);
D.apply(getProd(), rez);
|
_________________ -- space available for rent --
|
|
[Vrh] |
|
storm21 Forumaš(ica)
Pridružen/a: 05. 03. 2013. (00:36:12) Postovi: (9)16
|
|
[Vrh] |
|
Loo Forumaš(ica)
Pridružen/a: 11. 06. 2012. (16:02:07) Postovi: (D0)16
Spol:
|
|
[Vrh] |
|
ggg789 Gost
|
|
[Vrh] |
|
GauSs_ Moderator
Pridružen/a: 28. 01. 2004. (21:01:17) Postovi: (53C)16
Spol:
Lokacija: 231
|
|
[Vrh] |
|
|