C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值
1. 容器對象的構造和賦值
1.1 構造
C c;
C c; //默認構造函數
C c1(c2)
C c1=c2;
C c{a,b,c,…}
C c={a,b,c,…}
C c(b,e)//eg. list slist(svec.begin(),svec.end());
C seq(n) // n個值初始化,只適用于順序容器,必須給出默認構造函數
seq包含n個元素,這些元素進行了值初始化;此構造函數是explicit(string不適用)
C seq(n, t)//n個t 只適用于順序容器,可以不給,但要給出 T(t)構造函數。
注:創建一個容器時
- 傳遞參數為另一個容器的拷貝,兩個容器的類型以及元素類型必須相同。
- 傳遞參數為另一個容器的范圍拷貝,則不一定相同,而且嚴肅類型可以不同,但要能轉化。
1.2 賦值
c1=c2
c1={a,b,c,…}
1.3 特殊 array的構造和賦值
使用array類型,必須同時指定元素類型和大小
array<int, 10>::size_type i;//ok array<int>::size_type i;//errorarray可使用數組進行copy、對象賦值,不能直接數組賦值
array<int, 10> digits = {0,1}; array<int, 10> digits2 = digits ; //ok digits ={2,2};//error3. swap和assign
swap(c1, c2);
c1.swap(c2);
seq.assign(b, e) 將seq中的元素替換為迭代器b和e所表示的范圍中的元素,迭代器b和e不能指向seq自己
seq.assign(i1) 將seq中的元素替換為初始化列表i1中的元素
seq.assign(n, t) 將seq中的元素替換為n個值為t的元素
3.1 swap
. swap不對元素進行copy、delete、insert操作,時間很短(只是改變容器的指針,v1的指針指向的元素值不變,但是v1的指針已經屬于v2容器了)
. swap 兩個array會真正交換元素
eg.
3.2 assign
assign操作不適用于關聯容器和array
eg.
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(9)c
- 下一篇: C++ Primer 5th笔记(9)c