vector;
標頭檔案:
#include
using namespacestd;
定義:vector《型別》q;//類同於 "型別 q;"
vector《型別》q[1010] //類同於 「型別 q[1010]」
操作:往vector存入乙個個資料:
函式名:w. push_back(資料);
#include
#include
using namespace std;
vectorw;
int main()
int x;
for(inti=0;i<7;i++)
scanf("%d",&x);
w.push_back(x);//在容器的末端塞入資料。這個容器很高階,你就理解為類似陣列的存法。
2.我們來更好地理解vector裡面的東西;
這裡有兩個函式:q.begin(),q.end();
從英文名begin,end很好理解肯定是開頭和結尾;= =廢話。
那麼,我們來看看他是什麼(資料);
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
printf("begin=%dend=%d\n",w.begin(),w.end());
結果:
很糟糕的資料- -那就是記憶體了。然後end-begin不就是7嘛~~~~~
我們稱w.begin(),w.end()為迭代器(t^t好厲害的東西)迭代器是個所謂的複雜的指標【這裡不多講什麼是迭代器,自己都不知道(啊,丟人..)】,那分別存了什麼值呢?
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
printf("begin=%dend=%d\n",*w.begin(),*w.end());
結果:
我們很好理解,w.begin()"指向"了第乙個值—0,但是end呢,不是6?w.end()是末尾出去的那個,相當於我們定義陣列a[10],我們在查詢w.end(),就相當於查詢a[10]這個元素。那麼也就是說最後乙個值,就是*(w.end()-1);
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
printf("begin=%d end=%d 最後乙個是:%d\n",*w.begin(),*w.end(),*(w.end()-1));
結果:
然後就是遍歷:
這裡有乙個函式w.size()指這個vector所存的值的區域大小
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
printf("size=%d\n",w.size());
結果:
那好,我們就可以遍歷了;
這裡有一種神奇的用法就是,和陣列一樣的!!!為什麼呢?t^t不知道啊;
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
for(int j=0;jprintf("第%d個=%d\n",j+1,w[j]);
結果:
還有一種就是我們知道,w.begin(),w.end()是[迭代器](一種複雜的【指標】),那麼我們用同樣的【迭代器】去遍歷,也可以吧;
定義:vector::iterator b;
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
vector::iterator b;
int cont=1;
for(b=w.begin();b!=w.end();b++)
printf("第%d個=%d\n",cont++,*b);
結果:
還有就是清空:
w.clear();
#include
#include
#include
using namespacestd;
int main()
vectorw;
for(int i=0;i<7;i++) //我們把 i 塞進去
w.push_back(i);
vector::iterator a;
int cont=1;
for(a=w.begin();a!=w.end();a++)
printf("第%d個=%d\n",cont++,*a);
w.clear();
printf("begin=%dend=%d\n",w.begin(),w.end());
if(w.begin()==w.end())
printf("清空啦啦啦啦!!!\n");
vector::iterator b;
cont=1;
for(b=w.begin();b!=w.end();b++)
printf("第%d個=%d\n",cont++,*b);
結果:
ok,其他還有很多什麼翻轉啊,很高階的東西,試一試就什麼都知道了。
vector理解一波
vector 標頭檔案 include using namespacestd 定義 vector 型別 q 類同於 型別 q vector 型別 q 1010 類同於 型別 q 1010 操作 往vector存入乙個個資料 函式名 w.push back 資料 include include usi...
IT屋一波解答
viewpager 包裹fragment時,重新整理資料問題 1.setuservisiblehint 方法在oncreateview 之前呼叫,所以會throw nullpointexception 2.設定預載入,在viewpager中,現在的版本已經預設是1了。可以設定為mvphome.set...
安利一波TabNine
外網上看到tabnine的推薦,安裝試了一下,剛開始覺得幫助不大,乙個上午的使用之後就發現真的太ai了,我tornado習慣手寫sql語句,tabnine能夠幫助我直接補全模板。當然好處不止這些,使用的越久,他的深度學習演算法越能夠掌握你的 風格,自動幫你補全 我使用的intellij系的ide,此...