C++中出現的計算機術語4

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 對象,該對象存儲了一個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(類聲明)

類可以在定義之前聲明。類聲明用關鍵字class(或struct)表示,後面加類名字和一個分號。已聲明但沒有定義的類是一個不完全的類型。

class keyword(class 關鍵字)

用在class 關鍵字定義的類中,初始的隱式訪問標號是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(顯式構造函數)

可以用單個實參調用但不能用於執行隱式轉換的構造函數。通過將關鍵字explicit 放在構造函數的聲明之前而將其設置爲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 關鍵字定義的類中,初始的隱式訪問標號爲public。

synthesized default constructor(合成的默認構造函數)

編譯器爲沒有定義任何構造函數的類創建(合成)的構造函數。這個構造函數通過運行該類的默認構造函數來初始化類類型的成員,內置類型的成員不進行初始化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章