написал вроде все правильно, но не работает
использовал библиотеку algorithm, vector
Вот код
#include <iostream> //output, input
#include <string> //string
#include <thread> //thread
#include <chrono> //for units
#include <ctime> //for time(0)
#include <deque> //deque STL
#include <functional> //function
#include <vector> //vector STL
#include <algorithm>
// namespaces //
using namespace std;
using namespace this_thread;
using namespace chrono;
class Student
{
public:
Student(string name, unsigned short int age, unsigned short int rating)
{
this->age = age;
this->name = name;
this->rating = rating;
}
string GET_name(){return name;}
int GET_age(){return age;}
int GET_rating(){return rating;}
string name;
unsigned short int age;
unsigned short int rating;
};
// PROGRAM //
void Program()
{
vector<Student> Peoples
{
Student("Danil",13,786),
Student("Andrey",49,861),
Student("Masha",21,569),
Student("Pasha",4,4),
Student("Danil",15,891)
};
sort(Peoples.begin(),Peoples.end(),[](Student& one, Student& two){return one.GET_rating() > two.GET_rating();});
auto koko = remove(Peoples.begin(),Peoples.end(),[](Student& a){return a.age < 10;}); //Error в вот этой строке
Peoples.erase(koko,Peoples.end());
cout<<"Имя\t\tВозраст\t\tБал\t\t\tВсего: "<<Peoples.size()<<"\n"<<endl;
for(auto el:Peoples)
{
cout<<el.GET_name()<<"\t\t"<<el.GET_age()<<"\t\t"<<el.GET_rating()<<endl;
}
}
// main //
int main()
{
const auto _BEGIN_ = high_resolution_clock::now();
setlocale(LC_ALL,"ru");
srand(time(0));
cin.exceptions(ios::failbit | ios::badbit);
Program();
const auto _END_ = high_resolution_clock::now();
const int TIME_FOR_PROGRAM = duration_cast<microseconds>(_END_-_BEGIN_).count();
cout<<"\n\n\t\t\t\033[1;32mProgram completed in "<<TIME_FOR_PROGRAM<<"mcs\033[0m"<<endl<<endl;
}
я нарушил инкапсуляцию чтобы перебрать все варианты)
Вот ошибка:
Во-первых, remove
принимает значение, с которым выполняется сравнение. Для применения предиката нужно использовать remove_if
.
Далее, я бы рекомендовал заменить
const int TIME_FOR_PROGRAM = duration_cast<microseconds>(_END_-_BEGIN_).count();
на
const auto TIME_FOR_PROGRAM = duration_cast<microseconds>(_END_-_BEGIN_).count();
Тогда останется просто проигнорировать предупреждение в строке
srand(time(0));
или все же использовать более продвинутые возможности <random>
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйстаУ меня есть серверная и клиентская часть написанная на Web Socket
Изучаю JS + RN и пишу приложение с навигациейХочу отрендерить компонент в зависимости от переданных в него пропсов
Мне нужно каким-то образом нужно сделать так, чтобы при переходе на другую страницу моего сайта, музыка, которая играет у пользователя не обрывалась,...