下面是一个容器的基本使用范例,在此之前,先来看看vector。vector是namespace std内的template。其定义如下:
namespace std
{
template <class T, class Allocator = allocator<T> > class vector;
}来看看实际例子中是如何使用的:
在文件vectorpra.h中:
class People{
protected:
string Sex;
string name;
int age;
};
class Student: public People {
private:
int grade;
public:
void SetSex(string wsex){
Sex=wsex;
}
string GetSex() const{
return Sex;
}
void SetName(string stuname){
name=stuname;
}
string GetName() const{
return name;
}
void SetAge(int year){
age=year;
}
int GetAge() const{
return age;
}
void SetGrade(int gradeyear){
grade=gradeyear;
}
int GetGrade() const{
return grade;
}
};
typedef vector<Student> StudentArray;
class stuManager {
public:
StudentArray m_array;
void CreateStuInfo(string Aname,string Asex,int Aage, int Agrade);
void PrintStuInfo(Student stu);
};在文件vector.cpp中:
void stuManager::CreateStuInfo(string Aname,string Asex,int Aage, int Agrade)
{
Student STU;
STU.SetName(Aname);
STU.SetSex(Asex);
STU.SetAge(Aage);
STU.SetGrade(Agrade);
stuManager::m_array.push_back(STU);
}
void stuManager::PrintStuInfo(Student stu)
{
cout<<"Name ="<<stu.GetName()<<endl;
cout<<"Sex ="<<stu.GetSex()<<endl;
cout<<"Age ="<<stu.GetAge()<<endl;
cout<<"Grade="<<stu.GetGrade()<<endl;
}在main.cpp中:
int main(void)
{
stuManager MyClass;
MyClass.m_array.reserve(10); //保留10个元素的存储空间
MyClass.CreateStuInfo("Kaier","Male",14 ,3);
MyClass.CreateStuInfo("Randy","FMale",13 ,3);
MyClass.CreateStuInfo("Parker","Male",15 ,3);
MyClass.CreateStuInfo("Coco","FMale",13 ,3);
MyClass.CreateStuInfo("Joe","Male",12 ,3);
MyClass.CreateStuInfo("Amy","FMale",15 ,3);
for (int i = 0; i < MyClass.m_array.size();i++)
{
MyClass.PrintStuInfo(MyClass.m_array.at(i));
}
getchar();
getchar();
return 0;
}原文地址:http://3994129.blog.51cto.com/3984129/1597799