下面是一个容器的基本使用范例,在此之前,先来看看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;
}