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 )
		
对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...
 
随机推荐
- BI之路学习笔记3--olap cube理解实例
			
为什么会产生OLAP? 随着数据库技术的发展应用,数据库存储的数据量从M字节以及G(千兆)字节过渡到T字节和P字节,同时,用户的查询需求也越来越复杂,设计的已不仅是查询或者操纵一张关系表中的一条或几条 ...
 - [记录]Python高并发编程
			
========== ==多进程== ========== 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识. Unix/Linux操作系统提供了一个fo ...
 - 入职两个月,WPF开发感想
			
1 .新工作,新开始 2.WPF初次接触以及学习MVVM开发模式 3.后台数据操作,ORACLE 存储过程(边做边学) 4.总结 4.1工作开发中的小问题 ,遇到的坑: 4.2 解决的问题,学校到的 ...
 - 个人永久性免费-Excel催化剂功能第48波-拆分工作薄内工作表,堪称Excel界的单反
			
一个工作薄有多个相同类型的工作表,然后想通过批量操作,把每个工作表都另存为一个工作薄文件,这个批量拆分工作薄,绝大多数插件都有此功能,就如懂点VBA的高级用户也常常有点不屑于用插件来完成,自己写向行V ...
 - Django自带的后台管理系统
			
1.准备工作: 1-1.创建django项目和应用 1-2.修改settings.py配置文件: #应用配置: INSTALLED_APPS = [ 'django.contrib.admin', ' ...
 - SQLyog12最新版破解
			
1.SQLyog-12.2.4-0.x64Trial.exe,直接去官网下载. 2.修改注册表项 开始-运行-regedit ,进入注册表 HKEY_CURRENT_USER\Software\ ...
 - python课堂整理1
			
1.变量 变量只能由字母.数字.下划线组成 特例:1.变量不能用数字开头 2.不能是python的关键字 3.最好不要和python内置的东西重复 让变量名有意义 些 python3的关键字 ...
 - 第2个C# Winform实例,寻找三角形的位置
			
这里,在第一个例子的基础上,稍微做修改,达到最终定位三角形位置的目的. 先在网络上找一张包含有三角形的图片,我们这里使用一张有三个三角形和一些标记的图片来处理. 原图: 先贴结果图片:左侧,中间,右侧 ...
 - 如何在 Centos7 中安装 Mysql 5.7
			
一.下载安装包 (1). 下载MySQL源码 (进入/usr/local/src目录,使用wget下载) cd /usr/local/src wget https://dev.mysql.com/ge ...
 - Jquery第一次考核
			
1. 什么是JS JavaScript 缩写.一种计算机脚本语言 JavaScript是一种动态.弱类型.基于原型的语言,通过浏览器可以直接执行 2. JS三大组成部件 ECMAScript DOM ...