首頁 > 後端開發 > C#.Net教程 > C++ vector用法

C++ vector用法

黄舟
發布: 2016-12-14 14:52:34
原創
2565 人瀏覽過

1 基本操作

(1)頭文件#include.

(2)創建vector對象,vector vec;

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

(4)使用下標存取元素,cout

(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<<&#39; &#39;<<(*it).length<<&#39; &#39;<<(*it).width<<endl;    

return 0;

}
登入後複製

 3  演算法

(1) 使用reverse將元素翻轉:需要頭檔#include

reverse(vec.begin(),vec.end());元素翻轉(在vector中,如果一個函數中需要兩個迭代器,

一般後一個都不包含.)

(2)使用sort排序:需要頭檔#include

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

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

定義排序比較函數:

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

想要獲取更多相關內容請關注php中文網(www.php. cn)!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板