日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

C++vector的用法你都知道嘛_C 語言

作者:菜雞圣龍進(jìn)化菜松鼠 ? 更新時(shí)間: 2022-04-24 編程語言

C++vector 用法整理

1.頭文件

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

一個(gè)代碼示例

#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初始化

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

vector<int> a(10);

每個(gè)元素初值為1;

vector<int> a(10,1);

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

vector<char> a(b);

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

用數(shù)組賦初值(和上面一個(gè)有點(diǎn)相似)

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

3.vector對象的重要操作

1.賦值(assign)

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

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

2.返回元素值

//返回最后一個(gè)元素
a.back();
//返回第一個(gè)元素
a.front();
//數(shù)組返回式
 a[i];

3.清空、判斷是否為空

a.clear();

a.empty();

4.刪除

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

5.插入

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


//從現(xiàn)有向量中選擇元素向向量中添加
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的現(xiàn)存元素個(gè)數(shù)、共可容納個(gè)數(shù)

a.size();

a.c apacity();

7.調(diào)整元素個(gè)數(shù)(這個(gè)好牛)

//將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值隨機(jī)
a.resize(10);
//將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值為2
a.resize(10,2);
//大容量擴(kuò)充(不補(bǔ)充值)
a.reserve(100);

8.整體性交換

a.swap(b);

9.向量的比較操作

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

10.重要算法

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

4.一些誤區(qū)

下標(biāo)只能獲取已存在的元素,不能進(jìn)行賦值操作

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

總結(jié)

原文鏈接:https://blog.csdn.net/QiaoLiu___lq/article/details/122970365

欄目分類
最近更新