亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++標準模板庫vector的常用操作

2020-05-23 13:23:27
字體:
來源:轉載
供稿:網友

一:介紹

vector是C++標準模板庫,是一個容器,底層是數組,為連續內存。

命名空間為std,所屬頭文件為<vector>   注意:不是<vector.h>

vector存儲數據時,會分配一個存儲空間,如果繼續存儲,該分配的空間已滿,就會分配一塊更大的內存,把原來的數據復制過來,繼續存儲,這些性能也會一定程度上會有損耗

二:常用操作

容量:

  • a.vector大?。簐ector.size()
  • b.vector所占內存實際大?。簐ector.capacity()

修改:

  • a.尾部添加元素:vector.push_back()
  • b.尾部刪除元素:vector.pop_back()
  • c.交換兩個vector元素:vector.swap()
  • d.清空vector元素:vector.clear()
  • e.刪除指定元素:vector.erase(it)

迭代器:

  • a.vector開始指針:vector.begin()
  • b.vector尾部指針:vector.end()   注:最后一個元素的下一個位置,類似為NULL,不是容器的最后一個元素

訪問元素:

  • a.下標訪問:vector[1]  //不檢查是否越界
  • b.at方法訪問:vector.at(1) //自動檢查是否越界,如越界會拋出異常
  • c.訪問第一個元素:vector.front()
  • d.訪問最后一個元素:vector.back()

三:存儲

簡單存儲

  //存儲方式1  vector<int> v1(10);  for (int i=0; i<10; i++)  {    v1[i] = i;  }  //存儲方式2  vector<int> v2;  for (int i=0; i<10; i++)  {    v2.push_back(i);  }

存儲結構體和結構體指針

  struct Student  {    char name[32];    int age;  };  //存儲結構體  vector<Student> vStu1;  for (int i=0; i<10; i++)  {    Student stu;    strcpy(stu.name, "woniu201");    stu.age = 30 + i;    vStu1.push_back(stu);  }  //存儲結構體指針  vector<Student*> vStu2;  for (int i=0; i<10; i++)  {    Student* pStu = (Student*)malloc(sizeof(Student));    strcpy(pStu->name, "woniu201");     pStu->age = 30 + i;     vStu2.push_back(pStu);   }

四:vector遍歷

  vector<int> v;  for (int i=0; i<100; i++)  {    v.push_back(i);  }  //遍歷方式1  for (int i=0; i<100; i++)  {    int& a = v[i];    printf("%d ", a);  }  //遍歷方式2  for (vector<int>::iterator it = v.begin(); it != v.end(); it++)  {    int&a = *it;    printf("%d ", a);  }

五:排序

對vector整形進行排序

#include "stdlib.h"#include <vector>#include <algorithm>using namespace std;//升序比較函數int compare1(const int &a, const int &b){  return a < b;}//降序比較函數int compare2(const int &a, const int &b){  return a > b;}int main(){  vector<int> v;  for (int i=0; i<10; i++)  {    v.push_back(rand() % 10);  }  //遍歷輸出  printf("排序前數據:");  for (vector<int>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%d ", *it);  }  //升序排序  sort(v.begin(), v.end(), compare1);  //遍歷輸出  printf("/n升序后數據:");  for (vector<int>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%d ", *it);  }  //降序排序  sort(v.begin(), v.end(), greater<int>());  //遍歷輸出  printf("/n降序后數據:");  for (vector<int>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%d ", *it);  }  getchar();  return 1;}

對存放類成員變量排序

#include <string>#include <vector>#include <algorithm>using namespace std;class Student {public:    Student(string n, int c) :name(n), core(c) {}  string  name;  int    core;};//升序比較函數bool compare1(const Student& s1, const Student& s2){  return s1.core < s2.core;}//降序比較函數bool compare2(const Student& s1, const Student& s2){  return s1.core > s2.core;}int main(){  vector<Student> v;  Student s1("aaaa", 97);  Student s2("bbbb", 99);  Student s3("cccc", 95);  v.push_back(s1);  v.push_back(s2);  v.push_back(s3);  printf("排序前數據:/n");  for (vector<Student>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%s; %d/n", ((*it).name).c_str(), (*it).core);  }  //升序排序  sort(v.begin(), v.end(), compare1);  printf("/n升序后的數據:/n");  for (vector<Student>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%s; %d/n", ((*it).name).c_str(), (*it).core);  }  //降序排序  sort(v.begin(), v.end(), compare2);  printf("/n降序后的數據:/n");  for (vector<Student>::iterator it = v.begin(); it != v.end(); it++)  {    printf("%s; %d/n", ((*it).name).c_str(), (*it).core);  }  getchar();  return 1;}

六:查找

  vector<int>::iterator it = find(v.begin(), v.end(), 5);  if(it != v.end())  {    cout << "found";  }  else  {    cout << "not found";  }

七:刪除

  for(vector<int>::iterator it=v.begin(); it != v.end(); it++)  {    if(*it == 8)    {      it = v.erase(it);//it會++一次      it--;    //刪除完后需要--,否則最終循環越界    }  }

八:釋放內存

存放整形vector釋放

 //存放整型 vector<int> v; for (int i=0; i<100; i++) { v.push_back(i); }  //釋放內存  {    vector<int> vEmpty;    v.swap(vEmpty);  }

存放結構體vector釋放

 //存儲結構體 vector<Student> vStu1; for (int i=0; i<10; i++) { Student stu; strcpy(stu.name, "woniu201"); stu.age = 30 + i; vStu1.push_back(stu); } //釋放內存      {      vector<Student>    } vector<Student> vEmpty;     vStu1.swap(vEmpty);

存放結構體指針vector釋放

 //存儲結構體指針 vector<Student*> vStu2; for (int i=0; i<10; i++) { Student* pStu = (Student*)malloc(sizeof(Student)); strcpy(pStu->name, "wangpengfei"); pStu->age = 30 + i; vStu2.push_back(pStu); } //釋放內存 for (vector<Student*>::iterator it = vStu2.begin(); it != vStu2.end(); it++) { if (NULL != *it) {  delete *it;  *it = NULL; } }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一二三在线| 一级做a爰片久久毛片美女图片| 在线视频免费一区二区| 宅男66日本亚洲欧美视频| 欧美日韩综合视频| 亚洲欧美制服另类日韩| 1769国内精品视频在线播放| 欧美午夜片在线免费观看| 视频一区视频二区国产精品| 这里只有精品丝袜| 国产精品中文字幕在线观看| 亚洲女人被黑人巨大进入al| 国产噜噜噜噜久久久久久久久| 91极品视频在线| 青青草国产精品一区二区| 久久人体大胆视频| 日韩免费观看高清| 国产亚洲aⅴaaaaaa毛片| 欧美精品第一页在线播放| 欧美体内谢she精2性欧美| 69国产精品成人在线播放| 国产精品久久久久久久久久久不卡| 国产欧美日韩亚洲精品| 欧美日韩国产精品一区二区不卡中文| 欧美成人精品三级在线观看| 在线视频欧美日韩| 国产精品福利在线| 久久久久免费精品国产| 欧美日韩第一页| 91精品国产高清久久久久久久久| 91色精品视频在线| 精品亚洲一区二区三区在线播放| 午夜精品福利电影| 日韩精品视频在线| 啊v视频在线一区二区三区| 国产视频久久网| 欧美日韩国产色视频| 亚洲天堂av网| 亚洲自拍偷拍在线| 日韩欧美亚洲成人| 亚洲人成在线观| 久久中文字幕国产| 亚洲精品免费网站| 国产精品亚洲综合天堂夜夜| 亚洲精品xxx| 久久人体大胆视频| 国产成一区二区| 欧美乱大交xxxxx| 久99九色视频在线观看| 不卡伊人av在线播放| 亚洲欧美三级伦理| 国产精品女视频| 欧美老肥婆性猛交视频| 久久久成人精品视频| 国产亚洲成精品久久| 亚洲精品短视频| 日韩一区二区三区在线播放| 精品一区二区三区四区在线| 一级做a爰片久久毛片美女图片| 国产福利精品视频| 色悠悠久久88| 亚洲另类欧美自拍| 亚洲www在线观看| 欧美激情精品久久久久久变态| 按摩亚洲人久久| 成人免费自拍视频| 福利视频第一区| 国产欧美精品久久久| 亚洲国产欧美一区二区三区同亚洲| 在线观看视频99| 日韩av在线免费观看一区| 2021久久精品国产99国产精品| 日韩精品在线免费观看| 亚洲人成在线观看| 久久香蕉频线观| 国产精品一区二区3区| 亚洲激情视频网| 中文字幕亚洲一区二区三区五十路| 91国产高清在线| 亚洲激情久久久| 久久亚洲一区二区三区四区五区高| 久久噜噜噜精品国产亚洲综合| 91成人国产在线观看| 久久影视三级福利片| 久久人人爽人人爽人人片av高请| 精品欧美国产一区二区三区| 欧美性xxxx在线播放| 欧美日韩福利在线观看| 精品久久久久久国产91| 精品国产电影一区| 日韩欧美国产骚| 国产精品久久久久久av| 日韩最新免费不卡| 狠狠做深爱婷婷久久综合一区| 国产成+人+综合+亚洲欧美丁香花| 欧美在线精品免播放器视频| 欧美亚洲第一区| 国产精品99久久久久久白浆小说| 欧美黑人性视频| 亚洲视频在线观看视频| 国产精品影片在线观看| 91九色蝌蚪国产| 97视频免费看| 国产精品一区二区久久国产| 国产精品一区二区三| 美女黄色丝袜一区| 国产深夜精品福利| 国产97在线视频| 中文字幕成人在线| 日韩天堂在线视频| 欧美大片网站在线观看| 欧美另类老女人| 日韩av在线一区二区| 91av免费观看91av精品在线| 91精品在线播放| 91在线观看免费高清| 久久全国免费视频| 国产成人亚洲综合91精品| 国产一区二区三区在线| 欧美国产精品va在线观看| 欧洲中文字幕国产精品| 91国内在线视频| 夜夜嗨av色一区二区不卡| 欧美日韩国产成人在线| 91日本在线观看| 色偷偷av亚洲男人的天堂| 亚洲欧美中文日韩在线| 欧美日韩亚洲视频一区| 亚洲一区二区少妇| 成人妇女淫片aaaa视频| 亚洲成人黄色在线| 色爱av美腿丝袜综合粉嫩av| 成人有码在线播放| 亚洲第一男人天堂| 久久精品亚洲一区| 国产一区二区三区在线看| 在线日韩中文字幕| 国产一区二区丝袜高跟鞋图片| 国产成人综合久久| 国产性色av一区二区| 自拍偷拍免费精品| 欧美日韩国产成人在线| 精品精品国产国产自在线| 狠狠色狠色综合曰曰| 日韩精品极品视频| 国产精品视频yy9099| 日韩av免费在线看| 久久久久久久久久国产精品| 日韩中文在线中文网在线观看| 日韩欧美中文字幕在线观看| 在线成人激情黄色| 欧美贵妇videos办公室| 日韩中文字幕免费| 欧美极品少妇全裸体| 久久精品成人一区二区三区| 成人午夜在线影院| 992tv成人免费影院| 欧美精品手机在线| 国产激情久久久久| 亚洲九九九在线观看| 91在线免费网站| 欧美怡春院一区二区三区| 国产精品国产三级国产aⅴ浪潮| 日韩在线观看免费高清完整版|