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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++ 中vector的使用方法

發布時間:2024/3/12 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 中vector的使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在c++中,vector是一個十分有用的容器

作用:它能夠像容器一樣存放各種類型的對象,簡單地說,vector是一個能夠存放任意類型的動態數組,能夠增加和壓縮數據。

vector在C++標準模板庫中的部分內容,它是一個多功能的,能夠操作多種數據結構和算法的模板類和函數庫

特別注意:

使用vector需要注意以下幾點:

1、如果你要表示的向量長度較長(需要為向量內部保存很多數),容易導致內存泄漏,而且效率會很低;

2、Vector作為函數的參數或者返回值時,需要注意它的寫法:

? ?double?Distance(vector<int>&a,?vector<int>&b)?其中的“&”絕對不能少!!!


實例:vector<int>test;

//建立一個vector,int為數組元素的數據類型,test為動態數組名

簡單的使用方法如下:

vector<int>test;//建立一個vector

test.push_back(1);

test.push_back(2);//把1和2壓入vector,這樣test[0]就是1,test[1]就是2

?

自己見到的實例:

vector<vector<Point2f>?>?points;?//定義一個二維數組

points[0].size();??//指第一行的列數

1?、基本操作

(1)頭文件#include<vector>.

(2)創建vector對象,vector<int>?vec;

(3)尾部插入數字:vec.push_back(a);

(4)使用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開始的。

(5)使用迭代器訪問元素.

vector<int>::iterator?it;

for(it=vec.begin();it!=vec.end();it++)

????cout<<*it<<endl;

(6)插入元素:????vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

(7)刪除元素:????vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

(8)向量大小:vec.size();

(9)清空:vec.clear();

特別提示:這里有begin()與end()函數、front()與back()的差別

2、重要說明

vector的元素不僅僅可以是int,double,string,還可以是結構體,但是要注意:結構體要定義為全局的,否則會出錯。

#include<stdio.h> #include<algorithm> #include<vector> #include<iostream> using namespace std;typedef struct rect {int id;int length;int width;//對于向量元素是結構體的,可在結構體內部定義比較函數,下面按照id,length,width升序排序。bool operator< (const rect &a) const{if(id!=a.id)return id<a.id;else{if(length!=a.length)return length<a.length;elsereturn width<a.width;}} }Rect;int main() {vector<Rect> vec;Rect rect;rect.id=1;rect.length=2;rect.width=3;vec.push_back(rect);vector<Rect>::iterator it=vec.begin();cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl; return 0;}
3、算法

(1)?使用reverse將元素翻轉:需要頭文件#include<algorithm>

reverse(vec.begin(),vec.end());將元素翻轉,即逆序排列!

(在vector中,如果一個函數中需要兩個迭代器,一般后一個都不包含)

(2)使用sort排序:需要頭文件#include<algorithm>,

sort(vec.begin(),vec.end());(默認是按升序排列,即從小到大).

可以通過重寫排序比較函數按照降序比較,如下:

定義排序比較函數:

bool?Comp(const?int?&a,const?int?&b)
{
????return?a>b;
}
調用時:sort(vec.begin(),vec.end(),Comp),這樣就降序排序。?

?

輸出Vector的中的元素 ??

vector<float>?vecClass;?

int?nSize?=?vecClass.size();???

?//打印vecClass,方法一:??

for(int i=0;i<nSize;i++) { cout<<vecClass[i]<<" "; } cout<<endl;
需要注意的是:以方法一進行輸出時,數組的下表必須保證是整數。

?//打印vecClass,方法二:?? ??

for(int i=0;i<nSize;i++) { cout<<vecClass.at(i)<<" "; } cout<<endl;

//打印vecClass,方法三:輸出某一指定的數值時不方便

for(vector<float>::iterator it = vecClass.begin();it!=vecClass.end();it++) { cout<<*it<<" "; } cout<<endl;

二維數組的使用:

#include "stdafx.h" #include <cv.h> #include <vector>? #include <iostream>? using namespace std; int main() {using namespace std;int out[3][2] = { 1, 2, 3, 4,5, 6 };vector <int*> v1;v1.push_back(out[0]);v1.push_back(out[1]);v1.push_back(out[2]);cout << v1[0][0] << endl;//1cout << v1[0][1] << endl;//2cout << v1[1][0] << endl;//3cout << v1[1][1] << endl;//4cout << v1[2][0] << endl;//5cout << v1[2][1] << endl;//6return 0; }


vector中insert()的用法詳解:http://blog.csdn.net/duan19920101/article/details/51557854

?


總結

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

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

主站蜘蛛池模板: 日本wwww视频| 在线免费观看国产精品 | 久久99精品久久久久久噜噜 | 一区二区三区激情视频 | 黄色大片国产 | 国产精品欧美亚洲 | 欧美高清v | 9i免费看片黄 | 亚洲一区二区三区视频在线 | 极品美女被c | 在线播放黄色网址 | 久久老司机精品视频 | 国产欧美日韩高清 | 国产91av视频 | 成人在线免费观看网站 | 在线观看免费 | 九九精品九九 | 一区二区三区在线免费视频 | 性猛交ⅹxxx富婆视频 | 久久久久人妻一道无码AV | 欧美视频免费看欧美视频 | 一区二区中文字幕 | 俄罗斯破处| 夜间福利在线 | 国产区视频在线观看 | 日韩电影观看 | 国产一卡二卡 | 久久久久久免费观看 | 欧美与黑人午夜性猛交久久久 | 干欧美| youjizz日韩| 免费污片在线观看 | 精品一区免费 | 国产欧美日本在线 | 日韩精品在线观看AV | 亚洲国产视频一区二区 | 无人在线观看高清视频 单曲 | 久久精品免费在线观看 | 久久精品www人人爽人人 | 欧美在线一区视频 | 成人亚洲电影 | 日韩欧美国产片 | 四虎首页 | 亚洲精品欧美在线 | 欧美精品免费在线观看 | 毛片基地视频 | 男女做爰猛烈吃奶啪啪喷水网站 | 波多野结衣av电影 | 99热日韩| 天堂网2014av | 亚洲精品女人久久久 | 五月天导航 | 日本欧美韩国国产精品 | 日韩三级在线 | 看黄色一级视频 | 国产精品精东影业 | 大陆熟妇丰满多毛xxxⅹ | 国产福利一区视频 | av中文字幕一区 | 不卡视频在线 | 久久国产精品无码网站 | 免费看裸体网站视频 | 久久鲁视频 | 91在线观看免费高清完整版在线观看 | 亚洲一区二区三区电影在线观看 | 黄色片视频免费 | 午夜国产在线 | 在线观看一区二区三区视频 | 免费成人av片 | 国精产品一品二品国精品69xx | 欧美成人手机在线视频 | 精品一卡二卡 | 黄色高清无遮挡 | 日本特级黄色片 | 亚洲AV无码成人精品区麻豆 | 毛片久久久久久久 | 日韩中文字幕高清 | 性户外野战hd | 久久久久久久久久av | 国产美女视频网站 | 伊人涩涩| 国产一区二区黑人欧美xxxx | 搞黄网站在线观看 | 最新国产拍偷乱偷精品 | 黄色av毛片 | 国产性xxx | 亚洲第一天堂久久 | 欧美在线综合 | 日本在线不卡一区 | 久久久精品综合 | 欧美日韩一二三四区 | 好爽又高潮了毛片 | 日韩国产欧美精品 | 成人在线免费播放视频 | 成年人深夜福利 | 欧美中文字幕在线视频 | 精品成人av一区二区在线播放 | 中文字幕一区二区三区日韩精品 | 狠狠干天天操 |