速成演算法 入門之vector

2021-09-11 21:38:33 字數 2154 閱讀 9482

vector的用法

1.vector的定義:

vectorname;//其中typename可以是int ,float,double,char,string,結構體,或者是其他的stl容器,

上面這個定義相當於定義了乙個變長的一維陣列,name[size]

2.定義vector陣列:vectorarrayname[arraysize];

例:vectorvi[100];//vi[0]--vi[99]每乙個都是乙個vector容器

注意區別於vector> name;//這是乙個兩維都可變的陣列,而vectorarrayname[arraysize]是乙個一維固定為arraysize的可變陣列

3.vector的初始化:

五種方式:

vector a(10);//建立10個整型元素的向量,初值為0

vector a(10,2);//建立10個整型元素的向量,初值為2

vector a(b);//將向量b複製給a

vector a(b.begin(),b.begin()+3)//定義了a值為向量b第乙個元素到第三個元素

int b[5]=;

vector a(b,b+5);//從陣列中獲得初值

vector幾個重要的操作:

(1)a.assign(b.begin(), b.begin()+3); //b為向量,將b的0~2個元素構成的向量賦給a

(2)a.assign(4,2); //是a只含4個元素,且每個元素為2

(3)a.back(); //返回a的最後乙個元素

(4)a.front(); //返回a的第乙個元素

(5)a[i]; //返回a的第i個元素,當且僅當a[i]存在2013-12-07

(6)a.clear(); //清空a中的元素

(7)a.empty(); //判斷a是否為空,空則返回ture,不空則返回false

(8)a.pop_back(); //刪除a向量的最後乙個元素

(9)a.erase(a.begin()+1,a.begin()+3); //刪除a中第1個(從第0個算起)到第2個元素,也就是說刪除的元素從a.begin()+1算起(包括它)一直到a.begin()+ 3(不包括它)

(10)a.push_back(5); //在a的最後乙個向量後插入乙個元素,其值為5

(11)a.insert(a.begin()+1,5); //在a的第1個元素(從第0個算起)的位置插入數值5,如a為1,2,3,4,插入元素後為1,5,2,3,4

(12)a.insert(a.begin()+1,3,5); //在a的第1個元素(從第0個算起)的位置插入3個數,其值都為5

(13)a.insert(a.begin()+1,b+3,b+6); //b為陣列,在a的第1個元素(從第0個算起)的位置插入b的第3個元素到第5個元素(不包括b+6),如b為1,2,3,4,5,9,8 ,插入元素後為1,4,5,9,2,3,4,5,9,8

(14)a.size(); //返回a中元素的個數;

(15)a.capacity(); //返回a在記憶體中總共可以容納的元素個數

(16)a.resize(10); //將a的現有元素個數調至10個,多則刪,少則補,其值隨機

(17)a.resize(10,2); //將a的現有元素個數調至10個,多則刪,少則補,其值為2

(18)a.reserve(100); //將a的容量(capacity)擴充至100,也就是說現在測試a.capacity();的時候返回值是100.這種操作只有在需要給a新增大量資料的時候才 顯得有意義,因為這將避免記憶體多次容量擴充操作(當a的容量不足時電腦會自動擴容,當然這必然降低效能)

(19)a.swap(b); //b為向量,將a中的元素和b中的元素進行整體**換

(20)a==b; //b為向量,向量的比較操作還有!=,>=,<=,>,<

5.vector的讀取:

int a[6]=;

vectorb(a,a+4);

for(int i=0;i<=b.size()-1;i++)

cout<6.題目練習:

pat—a1039、a1047

機器學習之整合演算法

目的 讓機器學習效果更好,單個機器學習演算法不行,就用多個機器演算法整合。bagging模型 訓練多個分類器取結果的平均 boosting模型 從弱學習器開始加強,通過加權來進行訓練 加入一棵樹,要比原來強 stacking模型 聚合多個分類或回歸模型 可以分階段來做 全稱 bootstrap ag...

c 之vector容器入門

對於c 的vector容器的函式應用 include include include using namespace std intmain cout cout 迭代器形式結果 for it vt.begin it vt.end it cout cout vt元素個數是 size函式 插入元素函式 ...

對抗樣本生成演算法之BIM演算法

2017iclr adversarial examples in the physical world.相對於fgsm的單步攻擊,i fgsm分多步新增雜訊,更能擬合模型引數,因此通常表現出比fgsm更強的白盒能力。fgsm裡面,每次尋找對抗樣本的時候,直接是x sig n x j x,y x ep...