如果要在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...