- vector是向量類型, 也稱為動態(tài)數(shù)組,類似于python的列表
- 定義或初始化
vector
前,需添加頭文件 #include <vector>
// 1狈孔、定義一個具有整型類型的vector對象,無初值
vector<int> a;
// 2材义、定義一個整型類型, 有10個元素的vector對象均抽,無初值
vector<int> a(10);
// 3、定義一個整型類型, 有10個元素其掂,初值都為1的vector對象
vector<int> a(10, 1);
// 4油挥、定義一個整型類型,vector對象, 從數(shù)組b獲得初值,初始值為b中的前三個元素
int b[5] = { 1, 2, 3, 4, 5 };
vector<int> a(b, b + 3);
//5、定義一個整型類型,vector對象, 從向量b獲得初值深寥, 初始值為b的前三個元素
vector<int> a(b.begin(), b.begin() + 3);
#include "pch.h"
#include <vector>
#include <stdio.h>
using namespace std;
int main()
{
int b[5] = { 1, 3, 5};
vector<int> a(b, b+3);
// 通過下標(biāo)方式獲取,下標(biāo)方式只能獲取已存在的元素惋鹅,不知對不存在的元素直接賦值
for (size_t i = 0; i < a.size(); i++) {
printf("a[%d]=%d\n", i, a[i]);
}
for (size_t i = 0; i < a.size(); i++) {
printf("a.at(%d)=%d\n", i, a.at(i));
}
// 通過迭代器方式獲取
vector<int>::iterator it;
for (it = a.begin(); it < a.end(); it++) {
printf("%d\n", *it);
}
return 0;
}
輸出結(jié)果:
a[0]=1
a[1]=3
a[2]=5
a.at(0)=1
a.at(1)=3
a.at(2)=5
1
3
5
#include<vector>
vector<int> a,b;
//b為向量,將b的0-2個元素賦值給向量a
a.assign(b.begin(),b.begin()+3);
//a含有4個值為2的元素
a.assign(4,2);
//返回a的最后一個元素
a.back();
//返回a的第一個元素
a.front();
//返回a的第i元素,當(dāng)且僅當(dāng)a存在
a[i];
//清空a中的元素
a.clear();
//判斷a是否為空闰集,空則返回true沽讹,非空則返回false
a.empty();
//刪除a向量的最后一個元素
a.pop_back();
//刪除a中第一個(從第0個算起)到第二個元素,也就是說刪除的元素從a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)結(jié)束
a.erase(a.begin()+1,a.begin()+3);
//在a的最后一個向量后插入一個元素返十,其值為5
a.push_back(5);
//在a的第一個元素(從第0個算起)位置插入數(shù)值5,
a.insert(a.begin()+1,5);
//在a的第一個元素(從第0個算起)位置插入3個數(shù)妥泉,其值都為5
a.insert(a.begin()+1,3,5);
//b為數(shù)組,在a的第一個元素(從第0個元素算起)的位置插入b的第三個元素到第5個元素(不包括b+6)
a.insert(a.begin()+1,b+3,b+6);
//返回a中元素的個數(shù)
a.size();
//返回a在內(nèi)存中總共可以容納的元素個數(shù)
a.capacity();
//將a的現(xiàn)有元素個數(shù)調(diào)整至10個洞坑,多則刪,少則補蝇率,其值隨機
a.resize(10);
//將a的現(xiàn)有元素個數(shù)調(diào)整至10個迟杂,多則刪,少則補本慕,其值為2
a.resize(10,2);
//將a的容量擴充至100排拷,
a.reserve(100);
//b為向量,將a中的元素和b中的元素整體交換
a.swap(b);
//b為向量锅尘,向量的比較操作還有 != >= > <= <
a==b;
#include<algorithm>
//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素進行從小到大排列
sort(a.begin(),a.end());
//對a中的從a.begin()(包括它)到a.end()(不包括它)的元素倒置
reverse(a.begin(),a.end());
//把a中的從a.begin()(包括它)到a.end()(不包括它)的元素復(fù)制到b中,從b.begin()+1的位置(包括它)開始復(fù)制藤违,覆蓋掉原有元素
copy(a.begin(),a.end(),b.begin()+1);
//在a中的從a.begin()(包括它)到a.end()(不包括它)的元素中查找10浪腐,若存在返回其在向量中的位置
find(a.begin(),a.end(),10);