c 如何定義結構體佇列,c 如何定義一個結構體佇列

2022-03-30 00:06:41 字數 3826 閱讀 4418

1樓:匿名使用者

使用標準模板庫(stl)中的std::queue就可以,不一定要用指標。比如:

#include

struct mystruct

;int main()

佇列的特徵是先進先出(fifo),所以push元素會放到隊尾,pop元素會取出隊頭。

除此之外stl還提供了雙端佇列(deque)。顧名思義,雙端佇列可以在佇列兩頭進行操作。所以提供了對應的*front和*back的操作。

#include

#include

struct mystruct

;int main()

{// 定義雙端佇列

std::dequeq;

mystruct s1;

s1.num = 1;

// 插入隊尾

q.push_back(s1);

mystruct s2;

s2.num = 5;

// 插入隊首

q.push_front(s2);

// 取出隊首元素

mystruct s2_copy = q.front();

mystruct s1_copy = q.back();

std::cout << "s2 = " <

std::queue參考:

std::deque參考:

2樓:匿名使用者

struct mystruct

queueps; // ok 佇列中每個元素都是一個結構體,和基本型別int等一樣的用法,但是使用中會用到mystruct的【拷貝構造】和【賦值運算子】,當mystruct中存在指標變數時就需要非常小心避免出現野指標。

queuepps; // ok 佇列中每個元素都是一個指標,指標實際指向的結構體空間的分配與釋放都需要程式設計師進行維護。

3樓:墨水乾了

include

struct point

;queueq;

在c++如何定義並使用結構體

4樓:匿名使用者

定義:struct 結構型別名

;說明:

struct 結構型別名 變數名;

例如:輸出一學生成績。

struct student *\定義;main()

; *\說明

stu1.score=93.;

printf("%4.1f\n%4.1f\n",stu1.score,stu2.score);}

5樓:相思丶貓

和c語言一樣。

樓上的那位,除了註釋問題,一切都好。結分給他吧!

c++中如何在一個結構體裡定義一個指向該結構體的指標?

6樓:匿名使用者

有下面兩bai種方式:du

1、struct s;

struct *p1;/*p1是指向s結構zhi體dao的內指標容*/

2、typedef structs,*ps;

s *p2;/*p2是指向結

構體的指標*/

ps p3;/*p3是指向s結構體的指標*/

7樓:匿名使用者

應該這樣:

struct node;

8樓:窩沒欠你錢

如struct student

9樓:匿名使用者

你筆誤吧,應該這樣寫:

struct node;

c++中結構體可以定義一個函式麼

10樓:匿名使用者

結構體裡不定義函式 如果要定義函式 還不如寫成類呢

至於你說的binode *locate(binode *r,int e); binode *是個返回值型別 返回一個結構體指標 並不是用一個結構體定義一個located指標函式

11樓:匿名使用者

在c++結構體裡面是可以定義函式的 和類的定義差不多 只是預設屬性不同

在c語言裡面不可以

12樓:何度千尋

c中的結構體和c++中結構體的不同之處:在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c++中的結構體可以加入成員函式。

c++中的結構體和類的異同:

一、相同之處:結構體中可以包含函式;也可以定義public、private、protected資料成員;定義了結構體之後,可以用結構體名來建立物件。但c中的結構體不允許有函式;也就是說在c++當中,結構體中可以有成員變數,可以有成員函式,可以從別的類繼承,也可以被別的類繼承,可以有虛擬函式。

二、不同之處:結構體定義中預設情況下的成員是public,而類定義中的預設情況下的成員是private的。類中的非static成員函式有this指標,類的關鍵字class能作為template模板的關鍵字 即templateclass a{}; 而struct不可以。

實際上,c中的結構體只涉及到資料結構,而不涉及到演算法,也就是說在c中資料結構和演算法是分離的,而到c++中一類或者一個結構體可以包含函式(這個函式在c++我們通常中稱為成員函式),c++中的結構體和類體現了資料結構和演算法的結合。

c++類裡面定義結構體怎麼做

13樓:來自楊三寨雪白的月季花

根據你的意思,可以如下定義:

struct student{

char number[20];

char name[20];

float math;

float english;

float history;

class a{

private:

struct student stu;

14樓:

結構體相當於類,它也可以用public\private修飾,只不過我們一般不用。應該把他定義在類的外面,類中間可以包含這個結構體的成員變數。如:

struct student;

class a

15樓:匿名使用者

可以如下定義:

template

class mix

static void del_p( unit *p);

//此處省略部分成員

};但是出於程式可讀性的考慮,還是定義在類的外邊比較好,如下:

struct student;

class a

16樓:

結構體和類在c++裡其實是一個東西,唯一的區別就是類的成員預設是private,而結構體成員預設是public。

但是由於一直以來的習慣,結構體一般只是作為儲存資料用的資料結構,沒有具體行為,這點也可以看做和類的區別……因為類是有行為的(成員函式)。

結構體定義在類的內部外部都可以,但是出於程式可讀性的考慮,還是定義在類的外邊比較好

17樓:匿名使用者

那個叫類的方法,你這些叫屬性

char number[20];

char name[20];

float math;

float english;

float history;

18樓:手機使用者

結構體可以定義在類裡,也可以定義類的外

C語言結構體定義,C語言結構體定義

所謂結構體陣列,是指陣列中的每個元素都是一個結構體。在實際應用中,c語言結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生 一個車間的職工等。結構體可以儲存不同的資料型別,將他們互相聯絡起來。結構體陣列可以連續儲存多個結構體,和陣列作用相似。比如想定義同一個最小外接矩形的四個座標值,...

C語言結構體,C語言結構體定義

sort函式引數裡寫的是陣列,因此呼叫函式的時候傳的是變數的地址,當結構體變數的值在sort函式發生變化的時候,在主函式的值也會發生同樣的變化,因此這個函式其實不需要返回一個具體的數值,寫return就可以了。其實如果不需要返回值的話,可以直接定義為void型別,這樣就不需要return語句了。so...

c語言如何定義字串陣列C語言如何定義字串陣列

c語言字串陣列中的每一個元素均為指標,即有諸形如 ptr array i 的指標。由於陣列元素均為指標,因此ptr array i 是指第i 1個元素的指標。例 如二維指標陣列的定義為 char ptr array 3 擴充套件資料 字串陣列陣列元素表示方法 陣列元素的一般形式為 陣列名 下標 其中...