在上一篇文章中,小编为您详细介绍了关于《腾讯大王卡实际使用体验分享》相关知识。本篇中小编将再为您讲解标题C++中容器vector的用法详解教程。
vector在C++中是一个十分有用的容器,下面兄弟下载站的小编就对这个容器做一下总结。
一、基本操作
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()
二、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;
}
复制代码
四、算法
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的用法详解教程》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《CocoaPods下载及安装详细教程》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器