目錄9.2.2 容器型別成員
9.2.3 begin和end成員
9.2.4 容器定義和初始化
9.2.5 賦值和swap
9.2.6 容器大小操作
9.2.7 關係運算子
容器庫在操作上形成了一種層次
在本節,我們將介紹所有容器(順序,關聯,無序)都適用的操作,在本章的其他章節介紹順序容器的其他操作,並在第11章介紹關聯容器的操作
容器中有兩個特殊的迭代器.begin()
和.end()
分別指向容器的第乙個元素和容器的尾後元素
,二者構成了乙個左閉右開區間
型別成員
含義size_type
unsigned表示容器大小
iterator
迭代器const_iterator
常量迭代器
reverse_iterator
反向迭代器
value_type
容器元素的型別
reference
元素型別的引用
const_referance
元素型別的常量引用
這些型別成員在泛型程式設計中很有用
在使用是必須顯示標註其類名
//iter是通過list定義的乙個迭代器型別
list::iterator iter;
//count是通過vector定義的乙個difference_type型別
vector::difference_type count;
常見用途是形成乙個包含所有元素的迭代器範圍
//常見的遍歷容器的模板
如果容器元素沒有預設建構函式,那麼必須顯式地提供初始值
只有順序容器的建構函式才接受大小引數, 關聯容器不支援
左右的容器的型別以及元素型別必須相同。
將引數所指定的元素替換掉左邊容器中的元素
由於舊元素會被替換,所以傳遞給assign的迭代器不能指向呼叫assign的容器
assign 的第二個版本接受乙個整型值和乙個元素值。它用指定數目且具有相同給定值的元素替換容中原有的元素,
交換兩個相同型別容器的內容。
vectorsvec1(10); //10個元素
vectorsvec2(24); //24個元素
swap(svec1, svec2);
除了array外,swap對任何元素進行拷貝刪除和插入,只是改變兩個容器的內部結構,因此能在常數時間完成
除了string外,swap不會導致指向容器的迭代器、指標和引用失效。
成員含義
size
元素的數目
empty()
容器是否為空
max_size
返回乙個》=該容器所能容納的最大元素的值
9 2 容器庫概覽
9.2.4 容器定義和初始化 將乙個容器建立為另乙個容器的拷貝的兩種方法 將乙個容器建立為另乙個容器的拷貝有兩種方法 1 直接拷貝整個容器,要求兩個容器的型別及其元素型別必須完全相同,array還要求大小一樣,因為array的大小是其資料型別的一部分。2 拷貝由乙個迭代器對指定的元素範圍,容器型別和...
順序容器概述
元素在容器中的排列次序只與元素加入容器的次序有關,可以按照順序訪問元素。按照元素在記憶體中儲存的方式,可以將順序容器分為連續儲存和離散儲存兩種 連續儲存的順序容器 容器在記憶體中佔據一整塊連續的記憶體空間,元素在容器中的排列方式就是在物理記憶體中的排列方式。這樣的順序容器有兩個特點 可以隨機訪問元素...
spring容器概述
這篇部落格寫一下對spring和springmvc父子容器的理解。一 首先明確 1 spring是乙個大的父容器,springmvc是其中的乙個子容器。父容器不能訪問子容器物件,但是子容器可以訪問父容器物件。2 一般做乙個ssm框架專案的時候,掃瞄 controller註解類的物件是在springm...