C++vector的用法你都知道嘛

C++vector 用法整理

1.頭文件

#include<iostream>//容器
#include<vector> //算法
#include<iterator>//迭代器

一個代碼示例

#include<iostream>//容器
#include<vector> //算法
#include<iterator>//迭代器
using namespace std;
int main(int argc, const char* argv[])
{
    const int SIZE = 6;
    int array[SIZE] = {1,2,3,4,5,6};
    vector<int> v(array,array+SIZE);
    cout<<"First element:"<<v.front()<<"\n Last element"<<v.back()<<endl;
   
}

2.vector初始化

定義十個整形元素的向量(其中初值不確定)

vector<int> a(10);

每個元素初值為1;

vector<int> a(10,1);

類似於深拷貝的整體賦值方式

vector<char> a(b);

vector<char> a(b.begin(),b.begin+3);//(a的值為0~2個元素)

用數組賦初值(和上面一個有點相似)

vector<int> a(b, b+7);

3.vector對象的重要操作

1.賦值(assign)

a.assign(b.begin(),b.begin()+3); //註意!此處,將b 0~2個元素構成的向量賦值給a!與上面不同!

a.assign(4,2);//  與vector<int> a(10,1);結果相同

2.返回元素值

//返回最後一個元素
a.back();
//返回第一個元素
a.front();
//數組返回式
 a[i];

3.清空、判斷是否為空

a.clear();

a.empty();

4.刪除

//刪除最後一個元素
a.pop_back();
//刪除一塊元素
a.erase(a.begin(),a.begin()+3);

5.插入

//在最後一個向量後插入一個元素
a.push_back(5);
// 插入一段元素(從第一個元素算起,插入3個數,值都為5)
a.insert(a.begin(), 3, 5);
//用數組插入一段元素(在a的第一個元素的位置插入b的第3個元素到第5個元素)
a.insert(a.begin(), b+1,b+6);


//從現有向量中選擇元素向向量中添加
int a[6] = {1, 2, 3, 4, 5, 6};
vector<int> b;
wector<int> c(a, a+4);
for(vector<int>::iterator it = c.begin(); it<c.end():it++)
{
    b.push_back(*it);
}


//從文件讀取元素向向量中添加
ifstream in("data.txt");
vector<int> a;
for(int i;in>>i)
{
    a.push_back(i);
}

6.返回vector的現存元素個數、共可容納個數

a.size();

a.c apacity();

7.調整元素個數(這個好牛)

//將元素個數調整至10,多刪少補,補的值隨機
a.resize(10);
//將元素個數調整至10,多刪少補,補的值為2
a.resize(10,2);
//大容量擴充(不補充值)
a.reserve(100);

8.整體性交換

a.swap(b);

9.向量的比較操作

a==b;
//還有 !=  >=  <=  >  <

10.重要算法

//從小到大排列
sort(a.begin(), a.end());
//倒置但不排列
 reverse(a.begin(),a.end());
//元素復制
copy(a.begin(),a.end(),b.begin());
//從某一區塊中查找元素值,返回位置
find(a.begin(),a.end(),10);

4.一些誤區

下標隻能獲取已存在的元素,不能進行賦值操作

//錯誤示例
vector<int> a;
for(int i = 0;i<10;i++)
    a[i] = i;

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!      

推薦閱讀: