STL, сортировка вектора
Код:
class Student
{
private:
string firstname;
string lastname;
double srb;
int ves;
public:
void set_stud(const string &,const string &,double,int,int,int,int);
void set_ves();
int get_ves();
void show()const;
};
class Dormitory // класс общежитие
{ public:
int number; // общее количество мест
int free; // количество свободных мест
vector <Student*> vect;
Student* s;
void set_dorm();
void set_stud();
void show();
void mysort();
};
void Dormitory::set_stud()
{
string str1,str2;
double c;
int x1,x2,x3,x4;
ifstream is("studenty.txt"); //открывает файл для чтения
if (!is) {cout<< "Файл не найден"; exit(1);} //проверка
while(!is.eof()){
is>>str1; is>>str2; is>>c; is>>x1; is>>x2; is>>x3; is>>x4;
s=new Student();
s->set_stud(str1,str2,c,x1,x2,x3,x4);
vect.push_back(s);
}
is.close();
}
{
private:
string firstname;
string lastname;
double srb;
int ves;
public:
void set_stud(const string &,const string &,double,int,int,int,int);
void set_ves();
int get_ves();
void show()const;
};
class Dormitory // класс общежитие
{ public:
int number; // общее количество мест
int free; // количество свободных мест
vector <Student*> vect;
Student* s;
void set_dorm();
void set_stud();
void show();
void mysort();
};
void Dormitory::set_stud()
{
string str1,str2;
double c;
int x1,x2,x3,x4;
ifstream is("studenty.txt"); //открывает файл для чтения
if (!is) {cout<< "Файл не найден"; exit(1);} //проверка
while(!is.eof()){
is>>str1; is>>str2; is>>c; is>>x1; is>>x2; is>>x3; is>>x4;
s=new Student();
s->set_stud(str1,str2,c,x1,x2,x3,x4);
vect.push_back(s);
}
is.close();
}
Нужно отсортировать вектор vect по полю ves из класса Student. Пыталась перегрузить оператор < . Не работает
Код:
bool Dormitory::operator<( const Dormitory &d)
{
return(this->s->get_ves() <d.s->get_ves());
}
void Dormitory::mysort(){
sort(vect.begin(),vect.end());
}
{
return(this->s->get_ves() <d.s->get_ves());
}
void Dormitory::mysort(){
sort(vect.begin(),vect.end());
}
вопрос в чем?
То что пыталась - ну так попытка не пытка как известно. Может надо нормально попытаться?
посоветуйте, пожалуйста, как организовать сортировку вектора по полю внутреннего вектора. Я нигде не нашла такого примера
Цитата: AnutaNesk
посоветуйте, пожалуйста, как организовать сортировку вектора по полю внутреннего вектора. Я нигде не нашла такого примера
внутренний вектор - это как? как внутренний индиец?
или все же используете библиотеку STL? Есть стандартные алгоритмы сортировки - чем они не устраивают?
Цитата: kot_
Цитата: AnutaNesk
посоветуйте, пожалуйста, как организовать сортировку вектора по полю внутреннего вектора. Я нигде не нашла такого примера
внутренний вектор - это как? как внутренний индиец?
или все же используете библиотеку STL? Есть стандартные алгоритмы сортировки - чем они не устраивают?
извините, плохо выразилась. я и хочу использовать стандартный алгоритм, но он не работает для моего случая. поэтому и прошу о помощи
Все, не нужно. я разобралась