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 )
对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...
随机推荐
- LINUX安装源码软件经典三部曲
这几天一直在搞suse下的mplyaer.ffmpeg等源码编译安装,总结出源码软件安装三部曲,网上称为经典三部曲. 这三步分别为: 1. ./configure [options] 2. make ...
- HDU - 1232 畅通工程【并查集】
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- mui.storage 将数据持久化到本地
在一个用mui做得app中,要求把历史记录放在本地(感觉...无法言喻的sd),但最终还是做了,以下来记录本次的学习到的内容 mui.plusReady(function() { //这里是一开始定义 ...
- [剑指offer] 46. 孩子们的游戏(圆圈中最后剩下的数)
题目描述 随机指定一个数m,让编号为0的小朋友开始报数.每次喊到m-1的那个小朋友要出列,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下最后一个小朋友 ...
- python基础练习 斐波那契数列
转载于知乎刘奕聪的方法 一 f = [1, 1]print([f.append((f[-1] + f[-2])) or f.pop(0) for i in range(100)]) /// f.ap ...
- 用框架名唬人谁都会,那你知道Web开发模式吗?——莫问前程莫装逼
前言:这两天总结了一些Servlet和JSP里面的知识,写了几篇博客,果然有种“温故而知新”的感觉,学完这些,继续前行,开始整合框架里的知识,框架虽好,可底层原理该掌握的也得掌握,防止以后做项目的时候 ...
- Sublime Text 格式化代码
1.添加快捷键 其实在sublime中已经自建了格式化按钮: Edit -> Line -> Reindent 只是sublime并没有给他赋予快捷键,所以只需加上快捷键即可 Prefer ...
- MyEclipse2014破解版
百度云:链接:http://pan.baidu.com/s/1c3jKMa 密码:yss0 等版本)后,不要打开软件. 二.解压破解文件压缩包,得到一下文件列表: 三.双击run.bat,即可运行cr ...
- python课堂整理1
1.变量 变量只能由字母.数字.下划线组成 特例:1.变量不能用数字开头 2.不能是python的关键字 3.最好不要和python内置的东西重复 让变量名有意义 些 python3的关键字 ...
- C++ 过滤出字符串的中文(GBK,UTF-8)
最近在处理游戏敏感词之类的东西,为了加强屏蔽处理,所以需要过滤掉字符串中的除汉字之外的是其他东西如数字,符号,英文字母等. 首先我查阅资料并写了个函数: 示例:返回输入字符串中汉字的个数: std:: ...