vector 是 STL 庫中很常用的工具,可以了解為一個動态數組。
vector可以實作整體指派
普通的數組,比如 int 數組,隻能通過索引一個元素一個元素的指派,在有些情況下十分不便,但是今天在 coding 過程中驚喜的發現 vector 可以實作整體指派。
struct sample{
int id;
double AC; // 聲波時差測井值
double CNL; // 中子
double DEN; // 補償密度
double GR; // 放射性測井值
double PE; // 光電吸收截面子數
double RLLD; // 深側向電阻率
int LIMSTONE;
};
vector <struct sample> rawData;
至于 vector 變量 rawData 的指派過程就不展示了,與本文無關,隻展示一下 rawData 的部分資料:
rawData 中共包含1400個 struct sample 元素。
下面開始整體指派:
vector <struct sample> temp = rawData;
指派之後,temp 将存儲 rawData 的全部1400條資料。
為了證明 vector 的整體指派是真正的指派而不是隻将指向 rawData 的指針賦給 temp ,做了如下測試:
for ( int i=0; i<rawData.size(); i++){
cout << temp[i].AC << "\t" << rawData[i].AC << endl;
temp[i].AC -= 1;
cout << temp[i].AC << "\t" << rawData[i].AC << endl;
cin.get();
}
可以看出,将 temp 中的元素 -1,rawData 中的元素沒有改變。