程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中vector容器的用法

C++中vector容器的用法

編輯:關於C++

C++中vector容器的用法。本站提示廣大學習愛好者:(C++中vector容器的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中vector容器的用法正文


在c++中,vector是一個非常有用的容器,上面對這個容器做一下總結。

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();

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;
else
return 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),這樣就降序排序。

以上所述是給大家引見的C++中 vector容器的用法,希望對大家有所協助,假如大家有任何疑問請給我留言,會及時回復大家的。在此也十分感激大家對網站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved