9 2 容器庫概述

2022-09-23 10:51:06 字數 2230 閱讀 7631

目錄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...