欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++ vector 常用函數(shù)示例解析

 更新時(shí)間:2020年07月21日 14:14:48   作者:賴(lài)興宇  
這篇文章主要介紹了c++ vector 常用函數(shù)示例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

c++ vector 常用函數(shù)

Just like arrays, vectors use contiguous storage locations for their elements, which means that their elements can also be accessed using offsets on regular pointers to its elements, and just as efficiently as in arrays. But unlike arrays, their size can change dynamically, with their storage being handled automatically by the container.

vector也是一個(gè)數(shù)組但是它的占用的內(nèi)存大小是動(dòng)態(tài)變化的。當(dāng)vector占用的內(nèi)存滿(mǎn)了之后,就要重新分配內(nèi)存,并且賦值原來(lái)的所有元素,為了避免頻繁的重新分配內(nèi)存,遷移數(shù)據(jù)。vector實(shí)際分配的內(nèi)存比你需要的內(nèi)存多。比如你有10個(gè)int的數(shù)據(jù)在vector中,vector實(shí)際占用的內(nèi)存是20個(gè)int的內(nèi)存, 當(dāng)你數(shù)據(jù)占用超過(guò)實(shí)際占用內(nèi)存的比例的時(shí)候,vector就會(huì)自動(dòng)重新分配內(nèi)存,遷移數(shù)據(jù). vector實(shí)際占用的內(nèi)存可以用capacity()來(lái)查看

#include<iostream>
#include<vector>
using namespace std;
int main(){
  vector<int> ans;
  for(int i=0; i<10; i++) ans.push_back(i);
  ans.erase(ans.begin()+2);
  cout<<"擦除第三個(gè)數(shù)字:";
  for(int j=0; j<ans.size(); j++) cout<<ans[j]<<" ";
  ans.erase(ans.begin(), ans.begin()+2);
  cout<<endl<<"擦除前2個(gè)數(shù)字:";
  for(int k=0; k<ans.size(); k++) cout<<ans[k]<<" ";
  //盡量不要頻繁使用這個(gè)函數(shù),會(huì)引起大量數(shù)據(jù)移動(dòng),降低程序效率
  ans.insert(ans.begin()+1, 100);
  cout<<endl<<"在第一位后面插入100:";
  for(int m=0; m<ans.size(); m++) cout<<ans[m]<<" ";
  //vector在聲明的時(shí)候,可以申明大小和默認(rèn)值
  vector<int> temp(5, -1);
  cout<<endl<<"temp的大小為5,默認(rèn)值是-1:";
  for(int l=0; l<temp.size(); l++) cout<<temp[l]<<" ";
  //resize(int n)改變vector實(shí)際儲(chǔ)存的數(shù)據(jù)個(gè)數(shù), 如果n比實(shí)際個(gè)數(shù)多,則多出的位添加0,否則截取掉多余數(shù)據(jù)
  temp.resize(8);
  cout<<endl<<"把temp的大小改變位8:";
  for(int h=0; h<temp.size(); h++) cout<<temp[h]<<" ";
  //在改變vector大小的同時(shí)還能指定多余內(nèi)存的值;這種方式只適用于分配的空間比原來(lái)的多的情況
  temp.resize(10, 1111);
  cout<<endl<<"temp的大小改為10,并且指定多出來(lái)空間的值位11111:";
  for(int g=0; g<temp.size(); g++)cout<<temp[g]<<" ";
  cout<<endl<<"獲取temp的第一個(gè)元素:"<<temp.front()<<endl<<"獲取temp的最后一個(gè)元素:"<<temp.back();
  //常用empty()和size函數(shù)來(lái)判斷vector是否為空,當(dāng)vector為空的時(shí)候, empty()返回true, size()的值為0
return 0;}

此外可以配合#include<algorithm>庫(kù)中的unique函數(shù)來(lái)刪除vector中的重復(fù)元素

vector<int> ans;
ans.erase(unique(ans.begin(), ans.end()), ans.end());

到此這篇關(guān)于c++ vector 常用函數(shù)示例解析的文章就介紹到這了,更多相關(guān)c++ vector 常用函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)單詞小幫手

    C語(yǔ)言實(shí)現(xiàn)單詞小幫手

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)單詞小幫手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 淺談C++如何求等差素?cái)?shù)列

    淺談C++如何求等差素?cái)?shù)列

    這篇文章主要介紹了淺談C++如何求等差素?cái)?shù)列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C++命名空間使用詳細(xì)介紹

    C++命名空間使用詳細(xì)介紹

    考慮一種情況,當(dāng)我們有兩個(gè)同名的人,Zara,在同一個(gè)班里。當(dāng)我們需要對(duì)它們進(jìn)行區(qū)分我們必須使用一些額外的信息和它們的名字,比如它們生活在不同的區(qū)域或者興趣愛(ài)好什么的,在C++程序中也會(huì)遇到同樣的情況,所以命名空間就此產(chǎn)生
    2022-09-09
  • 使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    這篇文章給大家介紹了使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作,文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C語(yǔ)言實(shí)現(xiàn)圖形化打磚塊游戲

    C語(yǔ)言實(shí)現(xiàn)圖形化打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)圖形化打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn)(推薦)

    使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn)(推薦)

    這篇文章主要介紹了使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn),本文主要分析實(shí)踐中常見(jiàn)的、因?yàn)閷?duì)原理不清楚而搞出來(lái)的產(chǎn)品里的坑,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • C語(yǔ)言入門(mén)篇--初識(shí)結(jié)構(gòu)體

    C語(yǔ)言入門(mén)篇--初識(shí)結(jié)構(gòu)體

    本篇文章是基礎(chǔ)篇,適合c語(yǔ)言剛?cè)腴T(mén)的朋友,本文對(duì)c語(yǔ)言的結(jié)構(gòu)體做了簡(jiǎn)單的分析,幫助大家快速入門(mén)c語(yǔ)言的世界,更好的理解c語(yǔ)言
    2021-08-08
  • C++虛函數(shù)和多態(tài)超詳細(xì)分析

    C++虛函數(shù)和多態(tài)超詳細(xì)分析

    這篇文章主要介紹了C++多態(tài)的特性派生與虛函數(shù)與模板,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • C++ random_shuffle()方法案例詳解

    C++ random_shuffle()方法案例詳解

    這篇文章主要介紹了C++ random_shuffle()方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)循環(huán)順序隊(duì)列

    C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)循環(huán)順序隊(duì)列

    這篇文章主要介紹了 C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)循環(huán)順序隊(duì)列的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論