Concret linia urmatoare:
cout << "\n vector de obiecte de tip Student." << endl;
for (int i=0; i<arr.size(); i++)
cout << " " << arr;
cout << endl;
ar trebui sa afiseze vectorul de obiecte de tip Student, insa imi afiseaza "garbage"
acelasi lucru este valabil si pentru list si deque;
Code: Select all
#include <iostream>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
using namespace std;
class Student
{
private:
int nrMat;
char nume[20];
public:
Student(int nr = 0, char *nume = "Student"):nrMat(nr)
{
strcpy(this->nume, nume);
cout << "\n Constructor clasa Student." << endl;
}
int getNrMat()
{
return nrMat;
}
void setNume(char *nume)
{
strcpy(this->nume, nume);
}
char *getNume()
{
return nume;
}
Student(const Student &box)
{
this->nrMat = box.nrMat;
strcpy(this->nume, nume);
cout << "\n Constructor de copiere clasa Student." << endl;
}
bool operator< (Student &box)
{
return (this->nrMat < box.nrMat);
}
friend ostream& operator<< (ostream& box, Student obj)
{
box << obj.getNrMat() << " " << obj.getNume() << endl;
return box;
}
};
int main()
{
Student obj1(1, "Mircea");
Student obj2(2, "Stelian");
Student obj3(3, "Adrian");
// vector de date de tip int
vector<int> tab;
tab.push_back(11);
tab.push_back(12);
tab.push_back(13);
cout << endl;
for (int i=0; i<tab.size(); i++)
cout << " " << tab[i];
cout << endl;
// vector de obiecte de tip Student
vector<Student> arr;
arr.push_back(obj3);
arr.push_back(obj2);
arr.push_back(obj1);
cout << "\n vector de obiecte de tip Student." << endl;
for (int i=0; i<arr.size(); i++)
cout << " " << arr[i];
cout << endl;
// lista de date de tip int
list<int> listInt;
listInt.push_back(27);
listInt.push_front(32);
listInt.insert(listInt.end(), 54);
listInt.insert(listInt.begin(), 51);
list<int>::iterator itInt;
for (itInt=listInt.begin(); itInt!=listInt.end(); itInt++)
cout << " " << *itInt;
cout << endl;
listInt.sort();
cout << "\n Lista sortata" << endl;
for (itInt=listInt.begin(); itInt!=listInt.end(); itInt++)
cout << " " << *itInt;
cout << endl;
// lista de obiecte de tip Student
list<Student> listStudent;
listStudent.push_back(obj3);
listStudent.push_back(obj1);
listStudent.insert(listStudent.end(), obj2);
list<Student>::iterator itStudent;
for (itStudent=listStudent.begin(); itStudent!=listStudent.end(); itStudent++)
cout << " " << *itStudent;
cout << endl;
listStudent.sort();
cout << "\n Lista de studenti sortata" << endl;
for (itStudent=listStudent.begin(); itStudent!=listStudent.end(); itStudent++)
cout << " " << *itStudent;
cout << endl;
// deque pentru tipuri de date predefinite
deque<int> deqInt;
deqInt.push_front(101);
deqInt.push_back(103);
deqInt.push_front(106);
deqInt.push_back(107);
deque<int>::iterator iInt;
for (iInt=deqInt.begin(); iInt!=deqInt.end(); iInt++)
cout << " " << *iInt;
cout << endl;
//deque pentru tipuri de date definite de programator
deque<Student> deqStud;
deqStud.push_front(obj1);
deqStud.push_back(obj3);
deqStud.push_front(obj2);
deque<Student>::iterator iStud;
for (iStud = deqStud.begin(); iStud!= deqStud.end(); iStud++)
cout << " " << *iStud;
cout << endl;
return 0;
}