Vector使用方法简单整理
使用vector,需要引用vector库:
#include<vector>
首先,创建一个可以容纳int的vector变量——arr:
vector<int> arr;
接着,就可以使用一些vector的内建函数了:
arr.push_back();//在arr结尾插入数字9 arr.pop_back();//删除arr末尾最后一个项 arr.front();//arr的第一个项的值 arr.back();//arr的最后一个项的值 arr.begin();//arr的第一个项的指针 arr.end();//arr的最后一个项的指针 arr.size();//arr的实际长度 arr.erase(arr.begin(),arr.end());//删除从arr的第一个到最后一个项 arr.insert(arr.begin(),);//在arr的头之前插入数字5 arr.insert(arr.begin(),,);//在arr的头之前插入6个5 arr.empty();//判断arr是否为空 arr.clear();//将arr清空
Vector可以搭配一些算法使用,首先应用algorithm库:
#include<algorithm>
算法函数如下:
sort(arr.begin(),arr.end());//对vector排序 stable_sort(arr.begin(),arr.end());//对vector稳定排序 reverse(arr.begin(),arr.end());//反转vector vector<int>::iterator newend = unique(arr.begin(),arr.end()); //对arr去重,并把去重后的实际个数存在迭代器newend里面 arr.erase(newend,arr.end()); //把从newend到arr最后一项(即重复的数字)去除
附上完整测试代码:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
cout<<"Vector functions:"<<endl;
vector<int> arr;
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
arr.push_back();
cout<<"arr.push_back() : ";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
arr.pop_back();
cout<<"arr.pop_back() : ";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
cout<<"arr.front() : "<<arr.front()<<endl;
cout<<"arr.back() : "<<arr.back()<<endl;
cout<<"arr.size() : "<<arr.size()<<endl;
arr.erase(arr.begin()+,arr.end());
cout<<"arr.erase() : ";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
arr.insert(arr.begin(),,);
cout<<"arr.insert() : ";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
cout<<endl<<endl<<"Algorithm functions:"<<endl;
sort(arr.begin(),arr.end());
cout<<"sort():";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
reverse(arr.begin(),arr.end());
cout<<"reverse():";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
vector<int>::iterator oldend = arr.end();
vector<int>::iterator newend;
newend = unique(arr.begin(),arr.end());
arr.erase(newend,oldend);
cout<<"unique():";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
cout<<endl<<endl<<"Vector functions:"<<endl;
cout<<"arr.empty() : ";
if(arr.empty() == false){
cout<<"false"<<endl;
}
else{
cout<<"true"<<endl;
}
arr.clear();
cout<<"arr.clear() : ";
;i<arr.size();i++){
cout<<arr[i]<<" ";
}
cout<<endl;
cout<<"arr.empty() : ";
if(arr.empty() == false){
cout<<"false"<<endl;
}
else{
cout<<"true"<<endl;
}
}
补充说明:在C中,有很多东西需要自己实现。C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能。vector是其中之一,vector指向量,可以理解为“变长数组”,长度根据需要而自动改变的数组。有时会碰到普通数组会超过内存的情况,可以使用vector解决。而且,vector可以用来以邻接表的方式存储图,可以解决当节点数太多,无法使用邻接矩阵,又害怕使用指针实现邻接表的时候,使用很简单。
Vector使用方法简单整理的更多相关文章
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- Support Vector Machine (1) : 简单SVM原理
目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...
- 转载:.NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- MYBATIS 简单整理与回顾
这两天简单整理了一下MyBatis 相关api和jar包这里提供一个下载地址,免得找了 链接:http://pan.baidu.com/s/1jIl1KaE 密码:d2yl A.简单搭建跑项目 2.进 ...
- IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
来源:http://www.guchengnet.com/1499.html IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理 发表于2016年12月14日 有2.3个月没有用本地的i ...
- .NET Web开发技术简单整理 转
.NET Web开发技术简单整理 原文:http://www.cnblogs.com/SanMaoSpace/p/3157293.html 在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何 ...
- 编程中遇到的Python错误和解决方法汇总整理
这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下 开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...
- MongoDB中insert方法、update方法、save方法简单对比
MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )
对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...
随机推荐
- Mysql CPU使用率长期100%的解决思路备忘
最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...
- Windows下必备的开发神器之Cmder使用说明
诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...
- MyBatis从入门到精通(十二):使用collection标签实现嵌套查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collectio ...
- 【题解】危险的工作-C++
Description 给出一个数字N,N<=11.代表有N个人分担N个危险的工作. 每个人对应每个工作,有个危险值 每个人担任其中一项,问每个人危险值相加,最小值是多少. Input 第一行给 ...
- Docker+Maven+Jenkins在Devops中完整应用
过去与现在 很早之前,当我们需要一个部署环境的时候,我们可能指的是一台PowerEdge R710 2U服务器,走一系列冗长的申请流程,然后上架到机房.调试网络.安装系统.调试环境.最终部署应用,就这 ...
- 个人永久性免费-Excel催化剂功能第88波-批量提取pdf文件信息(图片、表格、文本等)
日常办公场合中,除了常规的Excel.Word.PPT等文档外,还有一个不可忽略的文件格式是pdf格式,而对于想从pdf文件中获取信息时,常规方法将变得非常痛苦和麻烦.此篇给大家送一pdf文件提取信息 ...
- ASP.NET Core MVC 之视图(Views)
ASP.NET Core MVC 控制器可以使用视图返回格式化的结果. 1.什么是视图 在 MVC 中,视图封装了用户与应用交互呈现细节.视图是具有生成要发送到客户端内容的,包含嵌入代码的HTML模板 ...
- 使用nvm管理多个不同版本的nodeJS之安装成功nodeJs之后使用npm报错的问题
使用nvm安装nodeJS之后,node -v命令可以正常使用,但是npm命令一直报“npm不是内部命令”的错误,深入研究之后得到以下解决方案: 搭建步骤: (1)下载nvm https://gi ...
- SQL Server 保存特殊字符时乱码
场景:协同完成的项目,数据库是同事创建,我们共同使用的表. 客户反应有一些字符查看的时候出现乱码.第一反应是否编码规则的问题.后来去数据库查发现数据库里就是乱码,百度了一下发现说特殊字符要保存在NVA ...
- npm常用命令(原创)
1.对于我们下载下来的node包,假设该包存在依赖情况执行: npm install(或者npm i) 下载依赖包: 下载依赖成功过后,文件夹内会产生package-lock.json文件: 2.下载 ...