vector初始化
對vector對象來說,直接初始化的方式適用于3種情況:1.初始值已知且數量少;2.初始值是另一個vector對象的副本;3.所有元素的初始值都一樣。此外還有一種更常見的情況是4.創建一個vector對象時并不清楚實際所需元素的個數,元素的值也無法確定。或者元素的初值已知,但如果這些總量較大而各部相同(對于這種情況,更好的處理方法是先創建一個空vector,然后再運行時再利用vector的成員函數push_back向其中添加元素)。
1.vector<T> v1 v1是一個空vector,它潛在的元素是T類型的,執行默認初始化;
2.vector<T> v2(v1) v2中包含有v1所有元素的副本;
3.vector<T> v2=v1 等價于v2(v1),v2中包含有v1所有元素的副本;
4.vector<T> v3(n,val) v3包含了n個重復的元素,每個元素的值都是val;
5.vector<T>? v4(n) v4包含了n個重復地執行了值初始化的對象;
6.vector<T> v5{a,b,c...} v5包含了初始值個數的元素,每個元素被賦值相應的初始值;
7.vector<T>={a,b,c...} 等價于v5{a,b,c...}
¥¥列表初始化還是元素初始化
在某些情況下,初始化的真實含義依賴于傳遞初始值時用的是花括號還是圓括號。例如,用一個整數來初始化vector<int>時,整數的含義可能是vector對象的容量也可能是元素的值。類似的,用兩個整數來初始化vector<int>時,這兩個整數可能一個是vector對象的容量,另一個是元素的初值,也可能它們是容量為2的vector對象中兩個元素的初值。通過花括號或圓括號可以區分上述這些含義:
vector<int> v1(10); //v1有10個元素,每個元素的值都是0
vector<int> v1{10}; //v2有1個元素,該元素的值是10
轉載于:https://www.cnblogs.com/QoQian/p/4775324.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 实验二Step1-有序顺序表
- 下一篇: Atitti.java exp ast