国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

vector 向量容器

2019-11-14 12:48:01
字體:
供稿:網(wǎng)友
vector 向量容器不但能像數(shù)組一樣對元素進(jìn)行隨機(jī)訪問,還能在尾部插入元素,是一種簡單、高效的容器,完全可以代替數(shù)組。頭文件:#include <vector>vector 容器的下標(biāo)是從0 開始計(jì)數(shù)的.對于vector 容器的容量定義,可以事先定義一個(gè)固定大小,事后, 可以隨時(shí)調(diào)整其大小;也可以事先不定義,隨時(shí)使用push_back()方法從尾部擴(kuò)張?jiān)?/strong>,通常使用 push_back()對vector 容器在尾部追加新元素。尾部追加元素,vector 容器會(huì) 自動(dòng)分配新內(nèi)存空間。可對空的vector 對象擴(kuò)張,也可對已有元素的vector 對象擴(kuò)張。例如::vector<int> v;                         v.push_back(2);insert()在某個(gè)元素位置前插入新元素。insert()方法可以在vector 對象的任意位置前插入一個(gè)新的元素,同時(shí),vector 自動(dòng)擴(kuò) 張一個(gè)元素空間,插入位置后的所有元素依次向后挪動(dòng)一個(gè)位置。 要注意的是,insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下標(biāo)vector<int> v(3);v[0]=2;v[1]=7;v[2]=9;//在最前面插入新元素,元素值為8v.insert(v.begin(),8);//在第2 個(gè)元素前插入新元素1v.insert(v.begin()+2,1);//在向量末尾追加新元素3v.insert(v.end(),3);//定義迭代器變量vector<int>::iterator it;for(it=v.begin();it!=v.end();it++){//輸出迭代器上的元素值cout<<*it<<" ";}//換行輸出:8 2 1 7 9 3元素的刪除:erase()方法: 可以刪除vector 中迭代器所指的一個(gè)元素或一段區(qū)間中的所有元素。clear()方法: 則一次性刪除vector 中的所有元素。#include <vector>#include <iostream>using namespace std;int main(){    vector<int> v(10);    for(int i=0; i<10; i++)    {        v[i]=i;    }//刪除下標(biāo)是2 個(gè)元素,從0 開始計(jì)數(shù)    v.erase(v.begin()+2);//定義迭代器變量    vector<int>::iterator it;    for(it=v.begin(); it!=v.end(); it++)    {//輸出迭代器上的元素值        cout<<*it<<" ";    }//換行    cout<<endl;//刪除迭代器第1 到第5 區(qū)間的所有元素    v.erase(v.begin()+1,v.begin()+5);    for(it=v.begin(); it!=v.end(); it++)    {//輸出迭代器上的元素值        cout<<*it<<" ";    }//換行    cout<<endl;//清空向量    v.clear();    cout<<v.size()<<endl;    return 0;}運(yùn)行結(jié)果:0 1 3 4 5 6 7 8 90 6 7 8 90兩個(gè)重要的方法:begin():返回的是首元素位置的迭代器end():返回的是最后一個(gè)元素的下一元素位置的迭代器創(chuàng)建vector對象:創(chuàng)建 vector 對象常用的有三種形式。(1)不指定容器的元素個(gè)數(shù),如定義一個(gè)用來存儲(chǔ)整型的容器:vector<int> v;(2)創(chuàng)建時(shí),指定容器的大小,如定義一個(gè)用來存儲(chǔ)10 個(gè)double 類型元素的向量容器:vector<double> v(10);注意,元素的下標(biāo)為 0~9;另外,每個(gè)元素的值被初始化為0.0。(3)創(chuàng)建一個(gè)具有n 個(gè)元素的向量容器對象,每個(gè)元素具有指定的初始值:vector<double> v(10,8.6);上述語句定義了 v 向量容器,共有10 個(gè)元素,每個(gè)元素的值是8.6。訪問:1.利用下標(biāo)既可訪問也可賦值這點(diǎn)類似于數(shù)組的訪問方式。vector<int> v(3);v[0]=2;v[1]=7;v[2]=9;cout<<v[0]<<" "<<v[1]<<" "<<v[2]<<endl;2.也可以使用迭代器迭代器的類型一定要與它 要遍歷的vector 對象的元素類型一致。vector<int> v(3);v[0]=2;v[1]=7;v[2]=9;//定義迭代器變量vector<int>::iterator it;for(it=v.begin();it!=v.end();it++)                       //注意:這里的it只能用it++,不可用it+=1;{//輸出迭代器上的元素值cout<<*it<<" ";}使用reverse 反向排列算法reverse 反向排列算法,需要定義頭文件“#include <algorithm>”,//反向排列向量的從首到尾間的元素reverse(v.begin(),v.end());輸出:9 8 7 6 5 4 3 2 1 使用sort 算法對向量元素排序使用 sort 算法,需要聲明頭文件“#include <algorithm>”。//排序,升序排列sort(v.begin(),v.end());//自己設(shè)計(jì)排序比較函數(shù):對元素的值進(jìn)行降序排列bool Comp(const int &a,const int &b){if(a!=b)return a>b;else return a>b;}//按Comp 函數(shù)比較規(guī)則排序sort(v.begin(),v.end(),Comp);向量的大小:使用 size()方法可以返回向量的大小,即元素的個(gè)數(shù)。使用 empty()方法返回向量是否為空。//輸出向量的大小,即包含了多少個(gè)元素cout<<v.size()<<endl;//輸出向量是否為空,如果非空,則返回邏輯假,即0,否則返回邏輯真,即1cout<<v.empty()<<endl;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 建水县| 乡宁县| 来宾市| 卫辉市| 个旧市| 杨浦区| 健康| 滁州市| 荣昌县| 汤阴县| 鹿泉市| 沙坪坝区| 屏东市| 通榆县| 增城市| 渭源县| 湘乡市| 孝义市| 彭州市| 赞皇县| 宝鸡市| 稻城县| 冷水江市| 大姚县| 杭锦旗| 游戏| 望都县| 胶南市| 曲周县| 石泉县| 胶南市| 蓬莱市| 河间市| 皮山县| 会东县| 利辛县| 治多县| 罗田县| 东源县| 富源县| 汝州市|