Vector容器中存放結構體型別的變數

2021-07-09 14:20:16 字數 1265 閱讀 5672

如果要在vector容器中存放結構體型別的變數,經常見到兩種存放方式.

方式一:放入這個結構體型別變數的副本。

方式二:放入指向這個結構體型別變數的指標。

假設結構體型別變數是這樣的,

[cpp]view plain

copy

print?

typedef

struct

student studentinfo;  

那麼,方式一和方式二的實現分別如下所示:

[cpp]view plain

copy

print?

/*[方式一] 結構體放棧中,vector中放副本---------------------*/

#include 

#include 

#include 

typedef

struct

student studentinfo;  

typedefstd::vectorstudentinfovec;  

void

print(studentinfovec* stduentinfovec)  

return

;  }  

intmain();  

studentinfo cherry=;  

studentinfovec studentinfovec;  

studentinfovec.push_back(micheal);  

studentinfovec.push_back(cherry);  

print(&studentinfovec);  

return

0;  

}  

方式一的輸出結果

[cpp]view plain

copy

print?

/*[方式二]  結構體放入堆中,vector中放指標---------------------*/

typedef

struct

student studentinfo;  

typedefstd::vectorstudentinfoptrvec;  

void

print(studentinfoptrvec*stduentinfoptrvec)  

return

;  }  

intmain()  

方式二的輸出結果,同上,依然是

vector容器中存放結構體型別的變數

如果要在vector容器中存放結構體型別的變數,經常見到兩種存放方式.方式一 放入這個結構體型別變數的副本。方式二 放入指向這個結構體型別變數的指標。假設結構體型別變數是這樣的,cpp view plain copy print?typedef struct student studentinfo ...

結構體容器vector

最近在做處理資料的問題,本來想建立乙個結構體,裡面存放兩個陣列,在乙個main函式裡進行了設計,也能成功執行,但是寫成函式呼叫的形式就會出錯,並且這種寫法必須設定陣列的大小。include include using namespace std int main stu for int i 0 i ...

vector 中存放陣列

vector array 3 注意 和 之間的空格。array2可以儲存3個向量,向量的長度是可以改變的。array2 i 返回的是第i個向量。同理,array2 i j 返回的是第i個向量中的第j個元素。注意不能這樣賦值 array2 1 2 9 原因就是你沒有指定向量的大小。用push back...