不能把整個容器佔據的記憶體整個寫到檔案中,因為容器中除了每個單元之外還有指標。
所以,應該乙個乙個單元地放進去。
(之前指標指向的位址再次使用時已經廢了)
寫入操作:
#include#include#include #include using namespace std;
int main()
; vectora(a,a+5);
ofstream in("lala.dat");
int i=a.size()-1;
while(!a.empty())
in.close();
return 0;
}
這裡的write()函式不會覆蓋之前的,只會繼續往下寫而已
p s:
強制轉化
的原因是
read
()和w
rite
()引數
表所接收
的資料類
型就是c
har∗
\color
ps:強制轉
化的原因
是rea
d()和
writ
e()參
數表所接
收的資料
型別就是
char
∗讀取操作:
#include#include#include #include using namespace std;
int main()
cout不使用eof()的原因:會造成最後一部分重複讀取。
因為eof()是對檔案沒有字元可以讀取了才返回true。
然而在檔案的結尾有乙個結束符,讓eof誤以為檔案還未讀取結束,以致於重複。
而peek(),如果要訪問的字元是檔案結束符,則函式值是eof(-1)。
但它只是觀測,指標仍停留在當前位置,由此也可見,這裡是read()函式在移動指標
ps:這裡補充讀取整個容器的調試圖(無法讀取記憶體)
向量容器vector操作
1.1 vector說明 1.2 建議使用場景 1.3 vector初始化 使用格式 vector 資料型別 變數名 常用的方式有如下幾種 定義乙個整型向量 大小沒有指定,可以動態的向裡面新增刪除 vector a 定義具有10個整型元素的向量 尖括號為元素型別名,它可以是任何合法的資料型別 不具有...
c 容器vector的基本操作
在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...
C STL之vector容器的基本操作
注意事項 特別注意任何時候同時使用兩個迭代器產生的將會是乙個前閉後開的區間 具體見插入和刪除的例子 特別注意begin 指向的是vec中的第0個元素,而end是指向最後乙個元素的後面乙個位置 不是最後乙個元素 特別注意迭代器的時效性,如果乙個迭代器所指向的內容已經被刪除,而後又使用該迭代器的話,會造...