足跡C primer 25 容器庫概覽

2021-06-22 09:55:52 字數 1156 閱讀 8393

首先順序容器幾乎可以儲存任意型別的元素。

vector> lines;   //vector的vector

iterator

迭代器(iterator)模式,又叫做游標(cursor)模式。gof給出的定義為:提供一種方法訪問乙個容器(container)物件中各個元素,而又不需暴露該物件的內部細節。

const_iterator物件可以用於const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改寫其指向的元素值.

size_type由string類型別和vector類型別定義的型別,用以儲存任意string物件或vector物件的長度,標準庫型別將size_type定義為unsigned型別

difference_type

是描述序列(容器)中兩個元素位址之間差異的有符號整數型別;

value_type

它是乙個typedef。是迭代器所指物件的型別

reference

元素的左值型別;與value_type&含義相同

const_reference

元素的const左值型別(即const value_type&)

這裡記住,c.end()是指向尾部元素後面那個位置的!!!

while(begin != end)

//每個容器有三個元素,用給定的初始化器進行初始化

listauthors=;

vectorarticles=;

listlist2(authors); //正確:型別匹配

dequeauthlist(authors); //錯誤:容器型別不匹配

vectorwords(articles); //錯誤:容器型別必須匹配

和內建陣列一樣,標準庫array大大小也是型別的一部分。

array//型別為:儲存42個int的陣列

array//儲存10個string型別的陣列

但是我們不能對內建陣列型別進行拷貝或物件賦值操作,但是array並無此限制

這個函式允許我們從不同的但相容的型別賦值,或者從容器的乙個子串行賦值

足跡C primer 26 順序容器操作

forward list 有自己專有版本的insert和emplace forward list 不支援push back和emplace back vector,string 不支援push front和emplace front c.push back t c.emplace back args...

足跡C primer 35 特定容器演算法

特定容器演算法 lst.merge lst2 將來自lst2的元素併入到lst。這兩個都必須是有序的。lst.merge lst2,comp 元素將從lst2刪除,第乙個版本使用 運算子,第二個版本使用給定的運算子 lst.remove lst2 呼叫erase刪除掉與給定值相等 或令一元謂詞為真的...

足跡C primer 38 關聯容器操作 2

關聯容器操作 2 map的下標操作 map和unordered map容器提供了下標運算符合乙個相應的at函式 對於乙個map使用下標操作,其行為與陣列或vector上的下標操作非常不同樣 使用乙個不再容器中的keyword作為下標。會加入乙個此keyword的元素到map中 map和unorder...