C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值
1. 容器對(duì)象的構(gòu)造和賦值
1.1 構(gòu)造
C c;
C c; //默認(rèn)構(gòu)造函數(shù)
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個(gè)值初始化,只適用于順序容器,必須給出默認(rèn)構(gòu)造函數(shù)
seq包含n個(gè)元素,這些元素進(jìn)行了值初始化;此構(gòu)造函數(shù)是explicit(string不適用)
C seq(n, t)//n個(gè)t 只適用于順序容器,可以不給,但要給出 T(t)構(gòu)造函數(shù)。
注:創(chuàng)建一個(gè)容器時(shí)
- 傳遞參數(shù)為另一個(gè)容器的拷貝,兩個(gè)容器的類型以及元素類型必須相同。
- 傳遞參數(shù)為另一個(gè)容器的范圍拷貝,則不一定相同,而且嚴(yán)肅類型可以不同,但要能轉(zhuǎn)化。
1.2 賦值
c1=c2
c1={a,b,c,…}
1.3 特殊 array的構(gòu)造和賦值
使用array類型,必須同時(shí)指定元素類型和大小
array<int, 10>::size_type i;//ok array<int>::size_type i;//errorarray可使用數(shù)組進(jìn)行copy、對(duì)象賦值,不能直接數(shù)組賦值
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個(gè)值為t的元素
3.1 swap
. swap不對(duì)元素進(jìn)行copy、delete、insert操作,時(shí)間很短(只是改變?nèi)萜鞯闹羔?#xff0c;v1的指針指向的元素值不變,但是v1的指針已經(jīng)屬于v2容器了)
. swap 兩個(gè)array會(huì)真正交換元素
eg.
3.2 assign
assign操作不適用于關(guān)聯(lián)容器和array
eg.
總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(9)c
- 下一篇: C++ Primer 5th笔记(9)c