9 1 順序容器的初始化

2021-07-01 22:01:37 字數 1237 閱讀 5039

順序容器的元素排列次序與元素值無關,而是由元素新增到容器的順序決定。

#include#include#include

初始化:

1)將乙個容器初始化為另乙個副本的副本:

vectorivec; vectorivec2(ivec);

2)使用迭代器間接初始化:

例:c++

listslist(svec.begin(),sevc.end());

vector::iterator mid =svec.begin()+svec.size()/2;

dequefront(svec.begin(),mid);

指標就是迭代器,因此允許通過使用內建陣列中的一對指標初始化容器。

例:c++

char *words=;

size_t words_size=sizeof(words)/sizeof(char*);

listwords(words,words+words_size);

3)分配和初始化指定數目的元素:

const list::size_type list_size=64;

listslist(list_size,"asd");

容器大小可以是常量或非常量表示式。採用這種型別的初始化,元素型別(也就是尖括號中的型別),必須是內建或者符合型別,或者提供了預設建構函式的類型別。關聯容器不支援。

4.容器可以放置類型別,但是不支援io庫型別,因為io庫型別不支援賦值或賦值。

5.vector< vector>lines;

使用容器的容器時> >中間必須有空格。

6.回憶:

在3 (2)中,sizeof(words)=12;計算陣列在記憶體中佔的長度和單個「plump」這個字串的長短無關。記憶體中資料中存放的是位址,不是實際的值。

sizeof(char*)=4;乙個指標4位元組,32位機。

9.3解釋複製容器物件的建構函式和使用兩個迭代器的建構函式之間的差別。

答:複製容器要求兩個容器是同型別的;後者的話可以將乙個容器初始化為另乙個容器的子串行,而且不要求兩個容器是同型別的。容器內的元素型別也可以不同,只要互相相容即可。

順序容器的簡單初始化

include include include include include include using namespace std int main vectorcv2 cv1 用相同型別的容器,以及容器元素型別都是一致 初始化。vectorcv3 cv2 同上 listauthors 可以讀 ...

初始化順序

上次面試碰到一面試題,雖然知道但是感覺還是有必要記錄下來,利己利民,題目是關於初始化順序的,也許對很多初學者還是有點用處的。閒話不多說,先上 package initialseq public class parent public parent public int method package ...

初始化順序

在類的內部,變數定義的順序決定了初始化的順序.即使變數定義散布於方法定義之間,它們仍會在任何方法呼叫之前得到初始化.無論建立多少個物件,靜態資料只占用乙份儲存區域.靜態變數初始化只有在必要時才會執行,比如有類table,如果不建立table物件也不引用table的靜態方法,那麼類table的靜態變數...