vector指针的测试

来源:互联网 发布:linux iic 编辑:程序博客网 时间:2024/06/05 13:53

 

[code=C/C++]

#include <vector>

#include <iostream>

using namespace std;

 

typedef struct tStudent{

    int iID;

    int iSex;

    char *lpName;

}*lpStudent;

template <class T> 

 

void CpyVector(vector<T> *lpdestVector,const vector<tStudent> *lpsrcVector)

{

    {

        lpdestVector->resize(lpsrcVector->size());

        memcpy(lpdestVector,lpsrcVector, lpsrcVector->size() * sizeof(T));

    }

    {

 

        //lpdestVector -> insert(lpdestVector -> end(), lpsrcVector -> begin(), lpsrcVector -> end() );

    }

 

}

void AddStudent(vector<tStudent>* lpvecStudent,struct tStudent *lpStudent)

{

    lpvecStudent -> push_back(*lpStudent);//push_back(lpStudent) 不行 

}

void InitStudent(struct tStudent * lpStudent,int iID,int iSex,char *lpName)

{

    lpStudent -> iID = iID;

    lpStudent -> iSex = iSex;

    lpStudent -> lpName = lpName;   

}

void Print(vector<tStudent> *lpvecStudent)

{

    vector<tStudent> vecStudent = *lpvecStudent;

    /*for(int i = 0;i < vecStudent.size(); i++)

    {

       cout<<vecStudent[i].iID<<","<<vecStudent[i].iSex<<","<<vecStudent[i].lpName<<endl;

    }*/

    vector<tStudent> :: iterator iter = lpvecStudent -> begin();

    while(lpvecStudent -> end() != iter)

    {

        //cout<<iter -> iID<<","<<iter -> iSex<<","<<iter -> lpName<<endl;

        cout<<(*iter).iID<<","<<(*iter).iSex<<","<<(*iter).lpName<<endl;

        iter++;

    }

}

int main()

{

    tStudent tStu;

    tStudent *lpStudent = &tStu;

    vector<tStudent> vecStudent;

    vector<tStudent> *lpvecStudent = &vecStudent;

    InitStudent(lpStudent,1,1,"first");

    AddStudent(lpvecStudent,lpStudent);

    Print(lpvecStudent);

    InitStudent(lpStudent,2,2,"Second");

    AddStudent(lpvecStudent,lpStudent);

    Print(lpvecStudent);

    InitStudent(lpStudent,3,3,"Third");

    AddStudent(lpvecStudent,lpStudent);

    Print(lpvecStudent);

    vector<tStudent> vecStudent2;

    vector<tStudent> *lpvecStudent2 = &vecStudent2;

    //vector<tSudent> *lpvecStudent2 = lpvecStudent;

 

    CpyVector(lpvecStudent2,lpvecStudent);

    Print(lpvecStudent2);

    int wait;

    cin >> wait;

    system("PAUSE");

 

}

[/code]
参考别人的写的,希望有更好的编程方法

 

原创粉丝点击