日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++的vector容器

發布時間:2023/11/30 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++的vector容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vector容器概念

  • vector是表示可變大小數組的序列容器。
  • 就像數組一樣,vector也采用的連續存儲空間來存儲元素。也就是意味著可以采用下標對vector的元素 進行訪問,和數組一樣高效。但是又不像數組,它的大小是可以動態改變的,而且它的大小會被容器自 動處理。
  • 本質講,vector使用動態分配數組來存儲它的元素。當新元素插入時候,這個數組需要被重新分配大小 為了增加存儲空間。其做法是,分配一個新的數組,然后將全部元素移到這個數組。就時間而言,這是 一個相對代價高的任務,因為每當一個新的元素加入到容器的時候,vector并不會每次都重新分配大 小。
  • vector分配空間策略:vector會分配一些額外的空間以適應可能的增長,因為存儲空間比實際需要的存 儲空間更大。不同的庫采用不同的策略權衡空間的使用和重新分配。但是無論如何,重新分配都應該是 對數增長的間隔大小,以至于在末尾插入一個元素的時候是在常數時間的復雜度完成的。
  • 因此,vector占用了更多的存儲空間,為了獲得管理存儲空間的能力,并且以一種有效的方式動態增 長。
  • 與其它動態序列容器相比(deques, lists and forward_lists), vector在訪問元素的時候更加高效,在 末尾添加和刪除元素相對高效。對于其它不在末尾的刪除和插入操作,效率更低。比起lists和 forward_lists統一的迭代器和引用更好。
  • vector容器注意事項

    所謂動態增加大小,并不是再原空間之后續新空間(因為無法保證原空間之后尚有可配置的空間),而是一塊更大的內存空間,然后將原數據拷貝空間,并釋放原空間。因此,對vector的任何操作,一旦引起空間的重新配置,指向vector所有迭代器就都失效了。

    vector構造函數

    vector賦值操作

    vector大小操作

    vector數據存取操作

    vector插入和刪除操作

    #include<iostream> #include<vector> #include<string> #include<list> using namespace std;void test01() {vector<int>v;for (int i = 0; i < 10; i++){v.push_back(i);cout << v.capacity() << endl;//v.capacity()容器的容量}}/**/void printVector(vector<int>&v) {for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;}void test02() {vector<int >v;int arr[] = { 2, 3, 4, 1, 9 };vector<int>v1(arr, arr + sizeof(arr) / sizeof(int));vector<int >v2(v1.begin(), v1.end());printVector(v2);vector<int>v3(10, 100);printVector(v3);//賦值使用vector<int>v4;v4.assign(v3.begin(), v3.end());printVector(v4);v4.swap(v2);cout << "交換后的v4" << endl;printVector(v4);cout << "v4容器的大小" << v4.size() << endl;if (v4.empty()){cout << "v4空" << endl;}else{cout << "v4不空" << endl;}///v4 23419v4.resize(10,-1);//第二個參數是默認值,默認0printVector(v4);v4.resize(3);printVector(v4); }//巧用swap收縮空間 void test03() {vector<int >v;for (int i = 0; i < 100000; i++){v.push_back(i);}cout << "v的容量" << v.capacity() << endl;cout << "v的大小" << v.size() << endl;v.resize(3);cout << "v的容量" << v.capacity() << endl;cout << "v的大小" << v.size() << endl;//巧用swapvector<int>(v).swap(v);cout << "v的容量" << v.capacity() << endl;cout << "v的大小" << v.size() << endl;} //reserve(int len).//容器預留len個元素長度,預留位置不初始化,元素不可訪問void test04() {vector<int>v;v.reserve(100000);//預留出空間int *p = NULL;int num = 0;for (int i = 0; i < 100000; i++){v.push_back(i);if (p != &v[0]){p = &v[0];num++;}}cout << num << endl;//開辟100000數據用了多少次 }void test05() {vector<int >v;v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(50);cout << "v的front" << v.front() << endl;cout << "v的front" << v.back() << endl;v.insert(v.begin(), 2,100);//參數1 迭代器 參數2 個數n 參數3 具體插入的內容printVector(v);v.pop_back();//尾刪printVector(v);v.erase(v.begin());//刪除printVector(v);//v.erase(v.begin(), v.end());v.clear();//清空所有數據if (v.empty()){cout << "為空" << endl;}}void test06() {//逆序遍歷vector<int>v;for (int i = 0; i < 10; i++){v.push_back(i);}printVector(v);//reverse_iterator 逆序的迭代器for (vector<int>::reverse_iterator it = v.rbegin(); it != v.rend(); it++){cout << *it << " ";}cout << endl;//vector迭代器是隨機訪問的迭代器 支持跳躍式訪問vector<int>::iterator itBegin = v.begin();itBegin = itBegin + 3;//如果上述寫法不報錯,這個迭代器是隨機訪問迭代器list<int>l;for (int i = 0; i < 10; i++){l.push_back(i);}list<int>::iterator lIt = l.begin();//lIt = lIt + 1;//不支持隨機訪問}int main() {//test01();//test02();//test03();//test04();//test05();test06();system("pause");return 0; }

    總結

    以上是生活随笔為你收集整理的c++的vector容器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲欧洲成人在线 | 中文字幕人乱码中文字 | 国产区久久 | 99热自拍偷拍 | 黄色片在哪看 | 老汉av网站 | 久久精品国产亚洲av麻豆图片 | 久久92 | 免费亚洲视频 | 美国黄色网址 | 国产成人精品网 | 噜噜噜久久久 | 国产一区二区不卡在线 | 天堂在线视频网站 | 哈利波特3在线观看免费版英文版 | 少妇色视频 | 名人明星三级videos | 日韩成人综合网 | 国产极品久久 | 午夜在线视频免费观看 | 337p粉嫩大胆色噜噜噜 | 污视频软件在线观看 | 99久久久国产精品免费蜜臀 | 99国产精品久久久久久久成人热 | av综合一区 | 日本少妇激情 | 国产视频一区二区 | 国产成人aaaa | 自拍欧美亚洲 | 一边摸内裤一边吻胸 | 日韩精品视频中文字幕 | av免费看网站| 欧美性aaa | 日韩欧美在线一区二区三区 | 天天操天天射天天爱 | 91精品国产欧美一区二区成人 | 陪读偷伦初尝小说 | 久久香视频 | 99国产精品久久久久久久久久久 | 成年人免费观看视频网站 | 亚洲一区二区精品在线 | 在线精品视频播放 | 波多野结衣中文字幕久久 | 亚洲毛片一级 | 亚洲精品成 | 欧美极品少妇xxxxⅹ喷水 | 精品成人久久 | 国产日韩欧美精品一区 | 欧美一区二区三区网站 | 黄色资源网 | 成人性生交视频免费观看 | 国产亚洲欧美一区 | 国产精品日韩一区 | 国产真实乱人偷精品人妻 | 97精品国产97久久久久久粉红 | 黄色大视频 | 51久久久 | 熟女俱乐部五十路六十路av | 日韩在线观看第一页 | 色女孩综合网 | 成人久久精品 | heyzo在线播放 | 91九色视频 | 91久色| 一区视频在线免费观看 | 男人操女人下面 | 午夜精品一区二区三 | 黄色网页免费看 | 九九热精品 | 日韩九九九 | 婷婷资源网 | 亚洲网站在线观看 | 打屁股调教视频 | 艳妇臀荡乳欲伦交换gif | 91偷拍视频 | 男男做性免费视频网 | 国产激情在线观看 | 在线观看免费av片 | 日韩成人午夜电影 | 亚洲一区免费视频 | 美女视频一区 | 国产精品亚洲AV色欲三区不卡 | 婷久久 | 河北彩花69xx精品一区 | 亚洲大色| 精品午夜一区二区三区在线观看 | 日本大乳美女 | 亚洲欧美一二三 | 欧美日韩一区二区三区四区 | 潮喷失禁大喷水aⅴ无码 | 草草影院第一页yycc.com | 亚洲av熟女国产一区二区性色 | 日日干日日摸 | 成人午夜淫片100集 伊人久久国产 | 99re6在线精品视频免费播放 | 久热热 | 国产乱子伦精品无码码专区 | 蜜臀久久99精品久久一区二区 | 成人免费视频视频 |