真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++類模板:數(shù)組-創(chuàng)新互聯(lián)

用類模板實現(xiàn)可變長數(shù)組:

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),臨洮企業(yè)網(wǎng)站建設(shè),臨洮品牌網(wǎng)站建設(shè),網(wǎng)站定制,臨洮網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,臨洮網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
#include#includeusing namespace std;
templateclass CArray
{int size; //數(shù)組元素的個數(shù)
    T *ptr; //指向動態(tài)分配的數(shù)組
public:
    CArray(int s = 0);  //s代表數(shù)組元素的個數(shù)
    CArray(CArray & a);
    ~CArray();
    void push_back(const T & v); //用于在數(shù)組尾部添加一個元素v
    CArray & operator=(const CArray & a); //用于數(shù)組對象間的賦值
    T length() {return size; }
    T & operator[](int i)
    {//用以支持根據(jù)下標訪問數(shù)組元素,如a[i] = 4;和n = a[i]這樣的語句
        return ptr[i];
    }
};
templateCArray::CArray(int s):size(s)
{ if(s == 0)
         ptr = NULL;
    else
        ptr = new T[s];
}
templateCArray::CArray(CArray & a)
{if(!a.ptr) {ptr = NULL;
        size = 0;
        return;
    }
    ptr = new T[a.size];
    memcpy(ptr, a.ptr, sizeof(T ) * a.size);
    size = a.size;
}
templateCArray::~CArray()
{ if(ptr) delete [] ptr;
}
templateCArray& CArray::operator=(const CArray & a)
{//賦值號的作用是使"="左邊對象里存放的數(shù)組,大小和內(nèi)容都和右邊的對象一樣
    if(this == & a) //防止a=a這樣的賦值導致出錯
    return * this;
    if(a.ptr == NULL) {//如果a里面的數(shù)組是空的
        if( ptr )
            delete [] ptr;
        ptr = NULL;
        size = 0;
        return * this;
    }
     if(size< a.size) {//如果原有空間夠大,就不用分配新的空間
         if(ptr)
            delete [] ptr;
        ptr = new T[a.size];
    }
    memcpy(ptr,a.ptr,sizeof(T)*a.size);   
    size = a.size;
     return *this;
}
templatevoid CArray::push_back(const T & v)
{//在數(shù)組尾部添加一個元素
    if(ptr) {T *tmpPtr = new T[size+1]; //重新分配空間
    memcpy(tmpPtr,ptr,sizeof(T)*size); //拷貝原數(shù)組內(nèi)容
    delete []ptr;
    ptr = tmpPtr;
}
    else  //數(shù)組本來是空的
        ptr = new T[1];
    ptr[size++] = v; //加入新的數(shù)組元素
}
int main()
{CArraya;
    for(int i = 0;i< 5;++i)
        a.push_back(i);
    for(int i = 0; i< a.length(); ++i)
        cout<< a[i]<< " ";   
    return 0;

注意:push_back()函數(shù)的實現(xiàn),不是單純的在數(shù)組末尾+1,而是要從新申請空間,要不造成越界

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享標題:C++類模板:數(shù)組-創(chuàng)新互聯(lián)
當前鏈接:http://weahome.cn/article/cegecc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部