c++定义一个类如何通过类的成员信息查找对象

在做上机实验,这是要求:1. 定义学生类,包括学号、姓名、性别、多门课程的成绩;假设有n个学生,由键盘输入学生信息;
2. 定义类成员函数,计算每个学生的平均成绩;
3. 按课程统计每门课程的平均成绩、最高分和最低分;(可选)
4. 同时输出所有学生信息;
5. 通过输入学生学号或姓名查询某学生的信息。
我只完成了124,怎么在我的这个程序里实现第五条?想不出来


#include <cstring>
#include<iostream>
#include <vector>
using namespace std; 

class CStudent
{
    private:
    string m_StuID;
    string m_Name;
    string m_Gender;
    vector<double> m_Grade;
    public:
    CStudent();
    CStudent(string stuId, string name, string gender, vector<double> m_grade);
    ~CStudent();
    double AvePerStu(vector<double> m_Grade);
    void output();
};

CStudent::CStudent(string stuId, string name, string gender, vector<double> grade)
{
    this->m_StuID = stuId;
    this->m_Name = name;
    this->m_Gender = gender;
    this->m_Grade = grade;
}

CStudent::~CStudent()
{
    cout << "本程序由" << "吉吉" << "编写" <<endl;
}

double CStudent::AvePerStu(vector<double> m_Grade)
{
    vector<double>::iterator it = m_Grade.begin();
    double sum = 0;
    int num = 0;
    double ave;
    for (; it != m_Grade.end(); it++)
        {
        sum += *it;
        num++;
        }
    ave = sum / num;
    return ave;
}

void CStudent::output()
{
    cout << m_Name << "\t"  << m_StuID << "\t" << m_Gender << "\t";
    vector<double>::iterator it = m_Grade.begin();
    for (; it != m_Grade.end();it++)
    {
    cout << *it << "\t";
    }
    cout << AvePerStu(m_Grade) << "\t" << endl;
}

int main(int argc)
{
    int stu_num;
    vector<CStudent> verStu;
    string StuID;
    string Name;
    string Gender;
    vector<double> Grade;
    int gra_num;
    cout << "请输入学生的个数:";
    cin >> stu_num;
    cout << "请输入课程的个数:";
    cin >> gra_num;
    for (int i = 0; i < stu_num;i++)
    {
        cout << "请输入第" << i + 1 << "个学生的信息信息:" << endl;
        cout << "学号:";
        cin >> StuID;
        cout << "姓名:";
        cin >> Name;
        cout << "性别:";
        cin >> Gender;
        cout << "请输入学生的课程成绩:"<<endl;
        double temp_grad;
    for (int j = 0; j < gra_num;j++)
    {
        cout << "课程" << j + 1 << ":";
        cin >> temp_grad;
        Grade.push_back(temp_grad);
    }
    CStudent stu(StuID, Name, Gender, Grade);
    verStu.push_back(stu);
    Grade.clear();
    }
    cout <<  "姓名" << "\t"  << "学号" << "\t" << "性别" << "\t"  << "成绩               " << "\t"  << "平均成绩" << "\t" <<endl;
    vector<CStudent>::iterator it = verStu.begin();
    for (; it != verStu.end(); it++)
    {
        it->output();
    }
    return 0;
}

可以用map来实现吧。