两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 概念

Vector可以翻譯為向量,或向量數(shù)組,至于為什么以向量命名,可以理解為一維空間也是存在向量的。

Vector是最簡單的序列是容器,就像數(shù)組一樣,向量使用連續(xù)的存儲位置作為元素,這意味著它們的元素也可以使用常量指向其元素的偏移來訪問,與數(shù)組一樣有效。但與數(shù)組不同,它們的大小可以動態(tài)變化,其存儲由容器自動處理。

總結一下Vector就是一個動態(tài)創(chuàng)建空間,且預先加載了常用的數(shù)組操作的數(shù)組

2. 相關頭文件

頭文件:#include <vector>

3. 初始化

格式為:vector<Data_Types> name;

我們以Int類型作為參數(shù)為例,進行創(chuàng)建。

vector<int> v1;          //創(chuàng)建一個空的向量v1
vector<int> v2(10);      //創(chuàng)建一個向量v2,其已開辟10個元素的空間,相當于int v[10];
vector<int> v3(10,5);    //創(chuàng)建一個向量v3,其已開辟10個元素的空間并全部賦值為5
vector<int> v4(v3.begin(),v3.end());    //創(chuàng)建一個向量v3,其內容為向量v3的內容
vector<int> v5(v4);      //創(chuàng)建一個向量v5,其包含了v4的全部內容

4. 迭代器

顧名思義,迭代器是一種安全的訪問控制器,它本身是一種指針,用于直接的元素訪問。其遍歷訪問的大致思路是,創(chuàng)建容器的迭代器,讓迭代器指向第一個元素,逐步向后移動并最終指向最后一個元素結束。

遍歷代碼舉例:

vector<int> v;       //創(chuàng)建一個向量vs
vector<int>::iterator it;   //C98標準
for(it=v.begin();it!=v.end();it++){
    cout<<*it<<' ';
}

當然,遍歷也可以直接使用下標訪問:

 for(int i=0;i<v.size();i++){
        cout<<v[i]<<' ';
    }

請根據(jù)自己的使用習慣進行合理的安排,對于新手而言會更傾向于選擇后者。

5.常用接口(常用的)

Vector的接口有非常多,不同的C++語言標準也不同,這里只提供一些常用的進行簡介,具體的使用可以翻閱官方文檔(英文),或是別人的翻譯稿。

我們使用 vector<int> v; 預先創(chuàng)建了一個向量。


a) 向量尾插入push_back()

在向量的末尾添加一個新元素val,并自動讓容器大小增大一個。

函數(shù)原型:

void push_back (const value_type& val);

使用舉例:

v.push_back(10);  //插入一個數(shù)據(jù)10


b) 向量尾刪除pop_back()

移除向量尾的最后一個元素,并且將容器大小減小一個,

函數(shù)原型:void pop_back();

使用舉例:

v.pop_back();

c) 插入insert()

插入元素到指定位置,通過在元素之前在指定位置插入新元素來擴展向量,從而有效地增加容器大小所插入的元素數(shù)量。

函數(shù)原型:

插入單一數(shù)據(jù)到指定位置:

iterator insert (iterator position, const value_type& val);

插入一段數(shù)據(jù)到指定位置:

void insert (iterator position, size_type n, const value_type& val);

插入一段別的容器的數(shù)據(jù)到指定位置:

template <class InputIterator>

void insert (iterator position, InputIterator first, InputIterator last);

使用舉例:

 v.insert(v.begin(),10);     //在向量最前端插入數(shù)據(jù)10
 v.insert(v.begin(),5,20);   //在向量最前端插入5個數(shù)據(jù)20
 
 vector<int> k(2,50);   //創(chuàng)建一個新的向量k,其擁有2個元素內容均為50
 v.insert(v.begin(),k.begin(),k.end());  //在向量v最前端插入向量K的全部內容

d) 刪除erase()

刪除一個元素,或者是一段區(qū)間的元素,將會自動縮減空間使用。

函數(shù)原型:

iterator erase (iterator position);

iterator erase (iterator first, iterator last);

使用舉例

v.erase(v.begin());     //刪除第一個元素
v.erase(v.begin(),v.begin()+4); //刪除從第一個開始后4個元素(包括第一個)

e) 清空clear()

將向量中所有元素清空。

函數(shù)原型:

void clear();

使用舉例:

v.clear();      //清空向量

f) 數(shù)據(jù)大小size()

返回向量中的數(shù)據(jù)元素個數(shù)。

函數(shù)原型:

size_type size() const;

使用舉例:

 cout<<v.size()<<endl;   //輸出5

g)已開辟最大寬度capacity()

返回向量最大已開辟的空間大小。

函數(shù)原型:

size_type capacity() const;

使用舉例

vector<int> v(3,10);    //創(chuàng)建默認有3個值為10的元素的向量v
v.insert(v.begin(),10,20);   //在向量最前端插入10個值為20的數(shù)據(jù)
v.erase(v.begin(),v.begin()+4); //刪除從第一個開始后4個元素(包括第一個)
cout<<v.capacity()<<endl;   //輸出13

h)*最大支持空間max_size()

返回計算機支持開辟vector的最大空間值,一般來說和計算機內存和CPU相關,是一個極大的數(shù)據(jù),而且不同計算機中可能有不同的值

函數(shù)原型:

size_type max_size() const;

使用舉例:

vector<int> v(5,10);    //創(chuàng)建默認有5個值為10的元素的向量v
cout<<v.max_size()<<endl;   //輸出4611686018427387903
點贊(1)

C語言網提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:

一點編程也不會寫的:零基礎C語言學練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學奧賽或C++選手的 必學C++課程

藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導課程

Dotcpp在線編譯      (登錄可減少運行等待時間)