天天看點

C++ STL :vector動态數組可實作整體指派vector可以實作整體指派

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 的部分資料:

C++ STL :vector動态數組可實作整體指派vector可以實作整體指派

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();
    }
           
C++ STL :vector動态數組可實作整體指派vector可以實作整體指派

可以看出,将 temp 中的元素 -1,rawData 中的元素沒有改變。

繼續閱讀