標籤:
adaptor(適配器)
一種標準庫類型、函數或迭代器,使某種標準庫類型、函數或迭代器的行為類似於第二種標準庫類型、函數或迭代器。系統提供了三種順序容器適配器:stack(棧)、queue(隊列)以及priority_queue(優先順序隊列)。全部的適配器都會在其基礎順序容器上定義一個新介面。
begin(begin 操作)
一種容器操作。假設容器中有元素,該操作返回指向容器中第一個元素的迭代器;假設容器為空白,則返回超出末端迭代器。
container(容器)
一種儲存給定類型對象集合的類型。全部標準庫容器類型都是模板類型。定義容器時,必須指定在該容器中儲存的元素是什麼類型。標準庫容器具有可變的長度。
deque(雙端隊列)
一種順序容器。deque中儲存的元素通過其下標位置訪問。該容器類型在非常多方面與vector 一樣,唯一的不同是deque 類型支援在容器首部高速地插入新元素,就像在尾部插入一樣,並且不管在容器的哪一端插入或刪除都不會引起元素的又一次定位。
end(end 操作)
一種容器操作,返回指向容器的超出末端的下一位置的迭代器。
invalidated iterator(無效迭代器)
指向不再存在的元素的迭代器。無效迭代器的使用沒有定義,可能會導致嚴重的執行時錯誤。
iterator(迭代器)
一種類型,其操作支援遍曆和檢查容器元素的操作。全部標準庫容器都定義了表9.5 列出的4 種迭代器,與之共同工作。標準庫迭代器都支援解引用(*)操作符和箭頭(->)操作符,用於檢查迭代器指向的元素值。它們還支援前置和後置的自增(++)、自減操作符(--),以及相等(==)和不等(!=)操作符。
iterator range(迭代器範圍)
由一對迭代器標記的一段元素範圍。第一個迭代器指向序列中的第一個元素,而第二個迭代器則指向該範圍中的最後一個元素的下一位置。假設這段範圍為空白,則這兩個迭代器相等(反之亦然——假設這兩個迭代器相等,則它們標記一個空範圍)。假設這段範圍非空,則對第一個空範圍)。如465果這段範圍非空,則對第一個迭代器反覆做自增運算,必定能達第二個迭代器。通過這個對迭代器進行自增的過程,就可以處理該序列中全部的元素。
left-inclusiveinterval(左閉合區間)
一段包括第一個元素但不包括最後一個元素的範圍。一般表示為[i, j),意味著該序列從i 開始(包括i)一直到j,但不包括j。
list(列表)
一種順序容器。list中的元素僅僅能順序訪問——從給定元素開始,要擷取還有一個元素,則必須通過自增或自減迭代器的操作遍曆這兩個元素之間的全部元素。list容器支援在容器的不論什麼位置實現高速插入(或刪除)運算。新元素的插入不會影響list 中的其它元素。插入元素時,迭代器保持有效;刪除元素時,僅僅有指向該元素的迭代器失效。
priority_queue(優先順序隊列)
一種順序容器適配器。在這樣的隊列中,新元素不是在隊列尾部插入,而是依據指定的優先順序層級插入。預設情況下,元素的優先順序由元素類型的小於操作符決定。
queue(隊列)
一種順序容器適配器。在這樣的隊列中,保證僅僅在隊尾插入新元素,並且僅僅在隊首刪除元素。
sequential container(順序容器)
以有序集合的方式儲存單一類型對象的類型。順序容器中的元素可通過下標訪問。
stack(棧)
一種順序容器適配器,這樣的類型僅僅能在一端插入和刪除元素。
vector(向量)
一種順序容器。vector中的元素通過其位置下標訪問。可通過調用push_back 或insert 函數在vector 中加入元素。在vector 中加入元素可能會導致又一次為容器分配記憶體空間,也可能會使全部的迭代器失效。在vector 容器中間加入(或刪除)元素將使全部指向插入(或刪除)點後面的元素的迭代器失效。
associative array(關聯陣列)
由鍵而不是位置來索引元素的數組。通常描寫敘述為:此類數組將鍵映射到其關聯的值上。
associative container(關聯容器)
儲存物件集合的類型,支援通過鍵的高效查詢。
key_type
關聯容器定義的類型,表示該容器在儲存或讀取值時所使用的鍵的類型。對於map 容器,key_type是用於索引該容器的類型。對於set 容器,key_type與value_type 同樣。
map
定義關聯陣列的關聯容器類型。與vector 容器一樣,map也是類模板。可是,map容器定義了兩種類型:鍵類型及其關聯的值類型。在map 中,每一個鍵僅僅能出現一次,並關聯某一詳細的值。對map 容器的迭代器進行解引用將獲得一個pair 對象,該Object Storage Service了一個const 鍵和它所關聯的值。
mapped_type
map 或multimap 容器定義的類型,表示在map 容器中儲存的值的類型。
multimap
類似map 的關聯容器。在multimap 容器中,一個鍵能夠出現多次。
multiset
僅僅儲存鍵的關聯容器類型。在multiset 容器中,一個鍵能夠出現多次。
pair
一種類型,有兩個public 資料成員,分別名為first 和second。pair類型是帶有兩個類型形參的模板類型,它的類型形參用作資料成員的類型。
set
僅僅儲存鍵的關聯容器。在set 容器中,一個鍵僅僅能出現一次。
strict weak ordering(嚴格弱排序)
關聯容器所使用的鍵之間的比較關係。在這樣的關係下,隨意兩個元素都可比較,並能確定兩者之間誰比誰小。假設兩個值都不比對方小,則這兩個值相等.
value_type
儲存在容器中的元素的類型。對於set 和multiset 容器,value_type與key_type 同樣。而對於map 和multimap 容器,該類型為pair 類型,
它的first 成員是const key_type 類型,second成員則是 mapped_type 類型。
* operator(解引用操作符)
用於map、set、multimap或multiset 迭代器時,解引用操作符將產生一個value_type 類型的值。注意,對於map 和multimap 容器,value_type是pair 類型。
[] operator(下標操作符)
下標操作符。對map 容器使用下標操作符時,[]中的索引必須是 key_type 類型(或者是能夠轉換為key_type 的類型)的值;該運算產生mapped_type 類型的值。
back_inserter
形參為指向容器的引用的迭代器適配器,產生使用push_back 為指定容器加入元素的插入迭代器。
bidirectionaliterator(雙向迭代器)
除了提供前向迭代器同樣的操作之外,還支援使用——操作符向後遍曆序列。
forward iterator(前向迭代器)
可讀寫元素的迭代器,但不支援——操作符。
front_inserter
一種迭代器適配器,產生使用push_front 在指定容器的開始位置加入新元素的插入迭代器。
generic algorithms(泛型演算法)
與類型無關的演算法。
input iterator(輸入迭代器)
僅僅能讀不能寫元素的迭代器。
insert iterator(插入迭代器)
使用容器操作插入元素而不是覆寫元素的迭代器。給插入迭代器賦值,等效於將具有所賦值的新元素插入到序列中。
inserter(插入器)
一種迭代器適配器,形參為一個迭代器和一個指向容器的引用,產生使用insert 為容器加入元素的插入迭代器,新元素插入在該適配器的迭代器形參所指向的元素前面。
istream_iterator
讀輸入資料流的流迭代器。
iterator categories(迭代器種類)
基於迭代器所支援的操作,在概念上對迭代器進行分類。迭代器種類形成了一個階層,功能較強的迭代器種類提供比它弱的迭代器的全部操作。
演算法使用迭代器種類來指定它的迭代器實參必須支援什麼操作。僅僅要迭代器至少提供這個層次的操作,就能夠用於該演算法。比如,一些演算法僅僅要求輸入迭代器,
則能夠使用除了輸出迭代器之外的隨意迭代器調用這種演算法。而要求使用隨機訪問迭代器的演算法僅僅能用在支援隨機訪問運算的迭代器上。
off-the-end iterator(超出末端迭代器)
一種迭代器,用於標記序列中一個元素範圍的結束位置。超出末端迭代器用作結束遍曆的“哨兵”,指向範圍內最後一個元素的下一位置。
超出末端迭代器可能指向不存在的元素,因此永遠不能做解引用運算。
ostream_iterator
寫輸出資料流的迭代器。
output iterator(輸出迭代器)
僅僅能寫不能讀元素的迭代器。寫輸出資料流的迭代器。
output iterator(輸出迭代器)
僅僅能寫不能讀元素的迭代器。
predicate(謂詞)
其傳回型別可轉換為bool 值的函數。通常被泛型演算法用於檢查元素。標準庫所使用的謂詞函數不是一元(須要一個實參)的就是二元的(須要兩個實參)。
random-accessiterator(隨機訪問迭代器)
除了支援雙向迭代器同樣的操作之外,還提供了使用關係運算比較迭代器值的能力,以及在迭代器上做算術運算的能力。因此,這類迭代器支援隨機訪問元素。
reverse iterator(反向迭代器)
向後遍曆序列的迭代器。這些迭代器顛倒了++ 和-- 的含義。
stream iterator(流迭代器)
可與流綁定在一起的迭代器。
abstract data type(抽象資料類型)
使用封裝來隱藏事實上現的資料結構,同意使用類型的程式猿抽象地考慮該類型做什麼,而不是詳細地考慮類型怎樣表示。C++中的類可用來定義抽象資料類型。
access label(訪問標號)
public 或private 標號,指定後面的成員能夠被類的使用者訪問或者僅僅能被類的友元和成員訪問。每一個標號為在該標號到下一個標號之間聲明的成員設定訪問保護。標號能夠在類中出現多次。
class(類)
是C++ 中定義抽象資料類型的一種機制,能夠有資料、函數或類型成員。一個類定義了新的類型和新的範圍。
class declaration(類聲明)
類能夠在定義之前聲明。類聲明用keywordclass(或struct)表示,後面加類名字和一個分號。已聲明但未定義的類是一個不全然的類型。
class keyword(class 關鍵字)
用在class keyword定義的類中,初始的隱式訪問標號是private。
class scope(類範圍)
每一個類定義一個範圍。類範圍比其它範圍複雜得多——在類的定義體內定義的成員函數能夠使用出如今該定義之後的名字。
concrete class(詳細類)
暴露事實上現細節的類。
const member function(常量成員函數)
一種成員函數,不能改變對象的普通(即,既不是static 也不是mutable)資料成員。const成員中的this 指標指向const 對象。成員函數能否夠被重載取決於該函數是否為const。
constructorinitializer list(建構函式初始化列表)
指定類的資料成員的初始值。在建構函式體現運行前,用初始化列表中指定的值初始化成員。沒有在初始化列表中初始化的類成員,使用它們的預設建構函式隱式初始化。
conversionconstructor(轉換建構函式)
可用單個實參調用的非explicit 建構函式。隱式使用轉換建構函式將實參的類型轉換為類類型。
data abstraction(資料抽象)
注重類型介面的編程技術。資料抽象同意程式猿忽略類型怎樣表示的細節,而僅僅考慮該類型能夠啟動並執行操作。資料抽象是物件導向編程和泛型程式設計的基礎。
default constructor(預設建構函式)
沒有指定初始化時使用的建構函式。
encapsulation(封裝)
實現與介面的分離。封閉隱藏了類型的實現細節。在C++ 中,實施封裝能夠阻止普通使用者訪問類的private 部分。
explicit constructor(顯式建構函式)
能夠用單個實參調用但不能用於運行隱式轉換的建構函式。通過將keywordexplicit 放在建構函式的聲明之前而將其設定為explicit。
forward declaration(前向聲明)
對尚沒有定義的名字的聲明。大多用於引用出如今類定義之前的類聲明。參見不全然類型。
friend(友元)
類授權訪問其非public 成員的機制。類和函數都能夠被指定為友元。友元擁有與成員一樣的訪問權。
incomplete type(不全然類型)
已聲明但沒有定義的類型。不能使用不全然類型來定義變數或類成員。定義指向不全然類型的引用或指標是合法的。
member function(成員函數)
類的函數成員。普通成員函數通過隱式的this 指標綁定到類類型的對象。static成員函數不與對象綁定且沒有this 指標。成員函數能夠被
重載,僅僅要該函數的版本號碼可由形參的數目或類型來差別。
mutable data member(可變資料成員)
一種永遠也不能為const 對象的資料成員,即使作為const 對象的成員,也不能為const 對象。mutable成員能夠在const 函數中改變。
name lookup(名字尋找)
將名字的使用與其對應的聲明相匹配的過程。
private members(私人成員)
在private 訪問標號之後定義的成員,僅僅能被友元和其它的類成員訪問。類所使用的資料成員和有用函數在不作為類型介面的組成部分時,通常聲明為private。
public members(公用成員)
在public 訪問標號之後定義的成員,可被類的隨意使用者訪問。一般而言,僅僅有定義類介面的函數應定義在public 部分。
static member(靜態成員)
不是隨意對象的組成部分、但由給定類的全體對象所共用的資料或函數成員。
struct keyword(struct 關鍵字)
用在struct keyword定義的類中,初始的隱式訪問標號為public。
synthesized default constructor(合成的預設建構函式)
編譯器為未定義不論什麼建構函式的類建立(合成)的建構函式。這個建構函式通過執行該類的預設建構函式來初始化類類型的成員,內建類型的成員不進行初始化。
C++中出現的電腦術語4