下面自定义的vector类的代码有什么问题?

[复制链接]
查看11 | 回复0 | 2011-5-23 10:34:22 | 显示全部楼层 |阅读模式
#include\"iostream\"
#include\"string\"
usingnamespacestd;

templatetypenameT
classVector
{
public:
        T*elements;
        intsize;
        intcapacity;

        Vector()
        {
                size=0;
                capacity=100;
                elements=newT[capacity];
        }
        voidensureCapacity()
        {
                if(size=capacity)
                {
                        T*old=elements;
                        capacity=2*size;
                        elements=newT[size*2];
                        for(inti=0;isize;i)
                                elements=old;
                }
        }       
        voidpush_back(Telement)
        {
                ensureCapacity();
                elements[size]=element;
                size;
        }
        voidpop_back()
        {
                size--;
        }
        intgetSize()
        {
                returnsize;
        }
        Tat(intindex)
        {
                returnelements[index];
        }
        boolempty()
        {
                return(size==0);
        }
        voidclear()
        {
                size=0;
        }

        voidswap(Vectorv2)
        {
Ttemp[100];
inttempSize=v2.size();
for(inti=0;iv2.size();i)
temp=v2.at(i);

v2.clear();
for(inti=0;isize();i)
v2.push_back(at(i));

clear();
for(inti=0;itempSize;i)
push_back(temp);


        }
};

intmain(intargc,char*argv[])
{
        Vectorintvector1;
        Vectorstringvector2;
        Vectorintvector3;
        vector1.push_back(5);
        vector1.push_back(3);
        vector1.push_back(99);
        vector2.push_back(\"China\");
        vector2.push_back(\"Guangdong\");
        vector3.push_back(14);
        vector3.push_back(744);


        cout\"Theelementsinvector1are:\"vector1.elements[0]\"\"vector1.elements[1]\"\"vector1.elements[2]endl;
        cout\"Theelementsinvector2are:\"vector2.elements[0]\"\"vector2.elements[1]endl;

        vector1.pop_back();
        vector2.pop_back();

        cout\"Afterpopingback:\"endl;
        cout\"Theelementsinvector1are:\"vector1.elements[0]\"\"vector1.elements[1]endl;
        cout\"Theelementsinvector2are:\"vector2.elements[0]endl;

vector2.swap(vector3);
        cout\"Theelementsinvector1are:\"vector1.at(0)endl;
        cout\"Theelementsinvector2are:\"vector2.at(0)\"\"vector2.at(1)endl;


        return0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行