中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++ vector怎么用

發布時間:2020-11-02 10:07:13 來源:億速云 閱讀:191 作者:小新 欄目:編程語言

這篇文章主要介紹c++ vector怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

c++ vector用法是:1、創建vector對象;2、尾部插入數字;3、使用下標訪問元素;4、使用迭代器訪問元素;5、插入元素;6、)刪除元素等等。

在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怎么用的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂托克前旗| 阳信县| 筠连县| 公主岭市| 泰顺县| 衡南县| 乐清市| 商都县| 斗六市| 唐河县| 涞水县| 秦安县| 都江堰市| 新乡县| 两当县| 肥西县| 永宁县| 廊坊市| 渑池县| 富宁县| 屏南县| 勐海县| 旬邑县| 新晃| 长春市| 义马市| 嘉禾县| 龙陵县| 聂荣县| 大方县| 百色市| 金塔县| 喀喇| 蕲春县| 且末县| 宁晋县| 遂川县| 抚顺市| 广宁县| 舞阳县| 原阳县|