Vector 不定長陣列基礎用法

2021-07-25 21:33:18 字數 1289 閱讀 8671

好久沒寫了呢,markdown的用法都忘得七七八八了。

今天在看網路流的問題,挑戰上的演算法設計vector ,之前就沒看懂,這次稍微統計一下用法,一些基礎方法什麼的

在c++中,vector是乙個十分有用的容器,下面對這個容器做一下總結。

1 基本操作

(1)標頭檔案#include.

(2)建立vector物件,vector vec;

(3)尾部插入元素: vec.push_back(a);

(4)刪除最後乙個元素: vec.pop_back();

(5)使用下標訪問元素,vec[0]記住下標是從0開始的。

(6)使用迭代器訪問元素.

vector

::iterator it;

for(it=vec.begin();it!=vec.end();it++)

cout

<<*it<(7)插入元素: vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

(8)刪除元素: vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

(9)向量大小: vec.size();

(10)清空: vec.clear();

vector的元素不僅僅可以使int,double,string,還可以是結構體,但是要注意:結構體要定義為全域性的,否則會出錯。下面是一段簡短的程式**:

#include

#include

#include

#include

using

namespace

std;

typedef

struct rect

3 演算法

(1) 使用reverse將元素翻**需要標頭檔案#include

reverse(vec.begin(),vec.end());將元素翻轉(在vector中,如果乙個函式中需要兩個迭代器,

一般後乙個都不包含.)

(2)使用sort排序:需要標頭檔案#include,

sort(vec.begin(),vec.end());(預設是按公升序排列,即從小到大).

可以通過重寫排序比較函式按照降序比較,如下:

定義排序比較函式:

bool comp(const int &a,const int &b)

呼叫時:sort(vec.begin(),vec.end(),comp),這樣就降序排序。

不定長陣列 vector

使用需要包含標頭檔案 include vector是乙個模板類,所以需要用vectora或者vectorb這種方式宣告。vector的常用操作 int len a.size 返回vector長度 a.resize 100 把a長度變為100 a.push back 10 把10新增到尾部 a.pop...

不定長陣列 vector

vector是乙個不定長陣列模板類,所以需要用vectora或者vectorb這樣的方式來進行宣告乙個vector。vector是乙個類似於int a的整數陣列,而vector就是乙個類似於string a的字串陣列。使用vector時要加 include標頭檔案 常用的vector陣列的方法有 i...

不定長陣列 vector

1.vector 在使用它時,需要包含標頭檔案vector,include.vector 容器與陣列相比其優點在於它能夠根據需要隨時 自動調整自身的大小以便容下所要放入的元素,提供了許 多的方法來對自身進行操作.2.初始化 vectora 宣告乙個int型向量a vectora 10 宣告乙個初始大...