首页 / C++ / c++中vector使用方法
c++中vector使用方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++中vector使用方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2114字,纯文字阅读大概需要4分钟。
内容图文
![c++中vector使用方法](/upload/InfoBanner/zyjiaocheng/736/37f94ca897894c88b0cf26d3bf36328f.jpg)
在c++中vector是一个十分有用的容器。
作用它能够像容器一样存放各种类型的对象简单地说vector是一个能够存放任意类型的动态数组能够增加和压缩数据。
vector在C++标准模板库中的部分内容它是一个多功能的能够操作多种数据结构和算法的模板类和函数库。
特别注意
使用vector需要注意以下几点
1、如果你要表示的向量长度较长需要为向量内部保存很多数容易导致内存泄漏而且效率会很低
2、Vector作为函数的参数或者返回值时需要注意它的写法
double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少
实例vector<int>test;
//建立一个vectorint为数组元素的数据类型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;
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;
}
内容总结
以上是互联网集市为您收集整理的c++中vector使用方法全部内容,希望文章能够帮你解决c++中vector使用方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。