日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值

發(fā)布時(shí)間:2025/3/21 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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ù)。

eg. list<string> slist(10, "");

注:創(chuàng)建一個(gè)容器時(shí)

  • 傳遞參數(shù)為另一個(gè)容器的拷貝,兩個(gè)容器的類型以及元素類型必須相同。
  • 傳遞參數(shù)為另一個(gè)容器的范圍拷貝,則不一定相同,而且嚴(yán)肅類型可以不同,但要能轉(zhuǎn)化。
list<string> slist(svec.begin(),svec.end()); vector<const char*> articles = {"a", "b"}; //列表初始化 vector<string> words(articles );//error vector<string> words(slist);//okchar *word []={"hello","world","buck","mulling","plump"}; list<string> word2(words,words+2);//ok

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;//error

array可使用數(shù)組進(jìn)行copy、對(duì)象賦值,不能直接數(shù)組賦值

array<int, 10> digits = {0,1}; array<int, 10> digits2 = digits ; //ok digits ={2,2};//error

3. 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.

vector<int> v1 = { 1,2,3 }; vector<int> v2 = { 4,5,6,7,8,9 }; swap(v1, v2); //swap后v1 = { 4,5,6,7,8,9 };v2 ={ 1,2,3 };

3.2 assign

assign操作不適用于關(guān)聯(lián)容器和array
eg.

vector<const char*> articles = {"a", "b"}; //列表初始化 vector<string> words; words.assign(articles.begin(), articles.end());

總結(jié)

以上是生活随笔為你收集整理的C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。