基于STL的学生信息管理

论坛上看到的,拿来学学stl= =
//基于STL的学生信息管理
#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>


class student
{
public:
	student(string name, string id, float ag):m_sName(name), m_sID(id), m_fAverage(ag)
	{

	}
	student(const student &stu)
	{
		m_sName = stu.m_sName;
		m_sID = stu.m_sID;
		m_fAverage = stu.m_fAverage;
	}
	student& operator= (const student &stu)
	{
		m_sName = stu.m_sName;
		m_sID = stu.m_sID;
		m_fAverage = stu.m_fAverage;

		return *this;
	}

	bool operator< (const student &stu)
	{
		return m_fAverage < stu.m_fAverage;
	}

	 friend ostream& operator<< (ostream &out, const student &stu)
	{
		out<<stu.m_sName<<" "<<stu.m_sID<<" "<<stu.m_fAverage;
		return out;
	}

private:
	string m_sName;
	string m_sID;

	//只是为了展示 利用averger字段进行排序,其余的不写了
	float m_fAverage;
};

class StudentInforManager
{
public:
	StudentInforManager(){}
	void SortByAverger()
	{
		//在这里调用STL 算法库中的函数 sort 默认的排序准则是< 在student类中我们已经重载了
		sort(stuVec.begin(), stuVec.end());
	}
	void PrintStudentInfor()
	{
		copy( stuVec.begin(), stuVec.end(),
			 ostream_iterator<student>(cout, "\n") );
	}

    void AddStudent(student &stu)
	{
		stuVec.push_back(stu);
	}
private:
	vector<student> stuVec;
};
	StudentInforManager sm;
	sm.AddStudent(student("zhangsan", "12301", 70));
	sm.AddStudent(student("lisi", "12302", 80));
	sm.AddStudent(student("wangwu", "12303", 90));
	sm.AddStudent(student("mazi", "12304", 60));

	sm.SortByAverger();
	sm.PrintStudentInfor();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值