第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

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

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

我想用c++寫(xiě)一個(gè)隊(duì)列類(lèi),看到網(wǎng)上有結(jié)構(gòu)體是這么寫(xiě)的typedef struct Queue_tag{ int data[MAXSIZE];      int front,rear; }QUEUE;但是實(shí)例化類(lèi)時(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 回答

?
揚(yáng)帆大魚(yú)

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

我的想法是,既然是用C++去解決這個(gè)問(wèn)題,那么就用C++的封裝方式去解決。在C++中,一切皆對(duì)象,那么就定義一個(gè)類(lèi)queue,具體的實(shí)現(xiàn)可以參考STL的queue實(shí)現(xiàn)。

如果是想用C的方式去解決,那么就用鏈表方式
struct _Node
{

char* data;
struct _Node* priv;
struct _Node* next;

};

data在程序執(zhí)行時(shí),創(chuàng)建有malloc完成,刪除有free完成。
我的理解是C和C++不是一樣的語(yǔ)言。


查看完整回答
反對(duì) 回復(fù) 2018-10-29
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(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-10-29
  • 2 回答
  • 0 關(guān)注
  • 967 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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