STL序列容器的儲存連續性

2021-08-22 15:44:26 字數 740 閱讀 6713

stl序列容器的儲存連續性

摘自《extended stl》中譯

c++標準庫提供了四種序列容器:deque、list、vector,和basic_string。第四種序列容器basic_string,主要用於表示字串,但它確實是不折不扣的序列容器,所以如果你非要這樣做的話,你也可以用它來儲存char和wchar_t以外的資料。

在標準庫中的容器中,只有vector保證其元素的儲存空間是連續的。因此,它和c api相容。換句話說,對於乙個非空的vector,下面的**是有意義的:

extern "c" void sort_ints(int* p, size_t n);

std::vectorv = . . .

assert(!v.empty());

sort_ints(&v[0], v.size());

但以下**的行為卻是未定義的:

std::dequed = . . .

assert(!d.empty());

從儲存空間的連續性考慮,下面的**行為也是未定義的:

std::string s1("abc");

char s2[4];

assert(!s1.empty());

::strcpy(&s2[0], &s1[0], s1.size()); // bad day . . . eventually

std::string不保證其儲存空間是連續的。

只是在已知的標準庫字串實現中都採用了連續的儲存空間。

預設引數,儲存的連續性

c 學習筆記2 預設引數 char left const char str,int n 1 引數n的預設值為1 呼叫引數時 str1 left str 返回第乙個字元組成的字串 str2 left str,5 返回前五個字元組成的字串 函式過載 函式多型 是指可以有多個同名的函式 僅當函式基本上執行...

概率的性質 連續性

概率的連續性如下定義 我們可以用韋恩圖把他們表示出來,便於理解 圖1 對應性質 1 圖2 對應性質 2 從圖1中我們可以看出,集合單調不增,打個比方,此集合會越來越小,那麼稱集合上連續 從上方逼近 極限為集合的交集。簡單的說,其實就是求多個事件都同時發生的概率為多少。圖2集合單調不減,此集合存在極限...

對函式連續性定義的說明

同濟版 高等數學第七版 中有對函式連續性有如下敘述 其中為了用第二種方式來定義函式連續性而作出了如下說明 容易看出,上圖內容更多地是從直觀的角度上進行分析,以幫助我們理解第二種定義與第一種定義之間的等價關係。直觀有直觀的好處,因為若是真要將其中緣由說清楚,可能會要牽扯出更加複雜 抽象的數學知識。事實...