C++STL基础与应用(第95页),vector容器综合应示例
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Student
{
public:
string m_strNO;
string m_strName;
string m_strSex;
string m_strDate;
public:
Student(string strNO,string strName,string strSex,string strDate):m_strNO(strNO), \
m_strName(strName),m_strSex(strSex),m_strDate(strDate){
}
void Display()
{
cout << m_strNO <<"\t" << m_strName << "\t"<<m_strSex<<"\t"<<m_strDate<<endl;
}
};
class StudCollect
{
vector<Student>m_vStud;
public:
void Add(Student &s)
{
m_vStud.push_back(s);
}
Student * find(string strNo)
{
bool bFind = false;
int j;
for(int i=0;i<m_vStud.size();i++)
{
Student &s = m_vStud.at(i);
if(s.m_strNO == strNo)
{
bFind = true;
j = i;
break;
}
}
Student * s = NULL;
if(bFind)
s = & m_vStud.at(j);
return s;
}
};
int main(int argc, char *argv[])
{
StudCollect s;
Student s1("1001","zhangsan","boy","1985-10-10");
s.Add(s1);
s1.m_strNO = "1002";
s1.m_strName = "lisi";
s1.m_strSex ="boy";
s1.m_strDate = "1986-8-12";
s.Add(s1);
s1.m_strNO = "1003";
s1.m_strName = "wangwu";
s1.m_strSex ="boy";
s1.m_strDate ="1989-12-16";
s.Add(s1);
Student * ps = s.find("1003");
if(ps)
ps->Display();
return 0;
}