亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++數據結構的實現類

c++數據結構的實現類

慕田峪7331174 2018-08-12 10:22:43
我想用c++寫一個隊列類,看到網上有結構體是這么寫的typedef struct Queue_tag{      int data[MAXSIZE];      int front,rear; } QUEUE;但是實例化類時好像只能通過改寫MAXSIZE來更改隊列初始化大小我想在構造函數里輸入參數來確定大小,于是我寫了下面的結構體,然后在函數里new了一個隨參數改變長度的數組,并讓*arr指向這個數組,請問這么做有沒有問題,我看好多代碼數組在結構體里都直接確定了大小,那有沒有什么辦法可以不通過更改宏定義而是通過構造函數來初始化大小呢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貢獻1852條經驗 獲得超7個贊

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

查看完整回答
反對 回復 2018-08-19
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

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;

    }

};

題主如果是練手,可以像上面這樣,自己重載一個構造函數就行了。如果是為了項目要用,直接用std::queue。另外一般的FIFO隊列,用鏈表實現更方便,而且易于增刪元素。這種用數組實現的一般用于循環隊列。

查看完整回答
反對 回復 2018-08-19
  • 2 回答
  • 0 關注
  • 743 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號