最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

c++數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類

c++數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類

我想用c++寫(xiě)一個(gè)隊(duì)列類,看到網(wǎng)上有結(jié)構(gòu)體是這么寫(xiě)的typedef struct Queue_tag{      int data[MAXSIZE];      int front,rear; } QUEUE;但是實(shí)例化類時(shí)好像只能通過(guò)改寫(xiě)MAXSIZE來(lái)更改隊(duì)列初始化大小我想在構(gòu)造函數(shù)里輸入?yún)?shù)來(lái)確定大小,于是我寫(xiě)了下面的結(jié)構(gòu)體,然后在函數(shù)里new了一個(gè)隨參數(shù)改變長(zhǎng)度的數(shù)組,并讓*arr指向這個(gè)數(shù)組,請(qǐng)問(wèn)這么做有沒(méi)有問(wèn)題,我看好多代碼數(shù)組在結(jié)構(gòu)體里都直接確定了大小,那有沒(méi)有什么辦法可以不通過(guò)更改宏定義而是通過(guò)構(gòu)造函數(shù)來(lái)初始化大小呢struct queue {     T *arr;     T *head;     T *tail;}*q;     void initQueue(int lenght)     {         q = new queue;         T *p = new T[lenght];         q->arr = p;         q->head = p;         q->tail = p;     }
查看完整描述

2 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

沒(méi)問(wèn)題,只要你能夠正確處理異常和記得釋放內(nèi)存……
為什么不用std::queue呢……

查看完整回答
反對(duì) 回復(fù) 2018-08-19
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

template<T>

class QUEUE

{

private:

    T* data;

    int front;

    int rear;

    int size;

public:

    QUEUE() {}

    QUEUE(int sz)

    {

        data = new T(sizeof(T) * sz);

        size = sz;

        /*your code below*/

    }

    ~QUEUE()

    {

        delete data;

        data = nullptr;

    }

};

題主如果是練手,可以像上面這樣,自己重載一個(gè)構(gòu)造函數(shù)就行了。如果是為了項(xiàng)目要用,直接用std::queue。另外一般的FIFO隊(duì)列,用鏈表實(shí)現(xiàn)更方便,而且易于增刪元素。這種用數(shù)組實(shí)現(xiàn)的一般用于循環(huán)隊(duì)列。

查看完整回答
反對(duì) 回復(fù) 2018-08-19
  • 2 回答
  • 0 關(guān)注
  • 759 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)