vector迭代器的算數運算 初級

2021-04-18 17:04:18 字數 663 閱讀 8799

vectorintvector;

vector::iterator                end     =  intvector.end();

vector::iterator                begin  =  intvector.begin();

vector::size_type            size     =  intvector.size();

vector::difference_type  diff      =  end - begin();        // 兩iterator型-運算,結果difference_type型

vector::iterator                  mid   = end+size/2;           //+,-整型或者size_type型,還是iterator型

vector::iterator  mid = (end+begin)/2                        //error ,沒有關於兩個iterator的定義

vector中的iterator 有 「-」 整型 或者 size_type型或iterator型的運算子過載

也有「+」整型或者size_type型的運算子過載,但是沒有iterator+iterator的運算子過載

vector的迭代器失效

大家知道vector容器與陣列的不同之處在於,vector可以自動擴容它的容量,是乙個動態的陣列,而我們的普通陣列的容量時固定死的。當vector內元素的數量等於vector容量的時候,再向vector中插入資料,vector會自動申請一塊兒更大的記憶體空間,並將原來的資料拷貝過去,並存將新的元素插...

Vector 迭代器 陣列

標準庫型別vector表示物件的集合,其中所有的物件型別都相同 集合中每個物件都有乙個與之對應的索引,索引用於訪問物件。vector是乙個類模板,是模板而非型別。1.初始化vector物件 vectorv1 t型別空vector,執行預設初始化 vectorv2 v1 v2包含所有v1元素的副本 v...

vector迭代器失效

c 面試題經常會背問到vector和list的區別,其中就有乙個問題就困擾我們的,面試官說vector在進行插入和刪除元素的時候迭代器會失效,list不會,那這邊由我來給大家舉個列子 include include using namespace std int main include inclu...