使用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使用方法简单整理的更多相关文章

  1. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  2. Support Vector Machine (1) : 简单SVM原理

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  3. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  4. MYBATIS 简单整理与回顾

    这两天简单整理了一下MyBatis 相关api和jar包这里提供一个下载地址,免得找了 链接:http://pan.baidu.com/s/1jIl1KaE 密码:d2yl A.简单搭建跑项目 2.进 ...

  5. IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理

    来源:http://www.guchengnet.com/1499.html IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理 发表于2016年12月14日 有2.3个月没有用本地的i ...

  6. .NET Web开发技术简单整理 转

    .NET Web开发技术简单整理 原文:http://www.cnblogs.com/SanMaoSpace/p/3157293.html 在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何 ...

  7. 编程中遇到的Python错误和解决方法汇总整理

    这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下   开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...

  8. MongoDB中insert方法、update方法、save方法简单对比

    MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...

  9. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

随机推荐

  1. WPF 入门笔记之控件内容控件

    一.控件类 在WPF中和用户交互的元素,或者说.能够接受焦点,并且接收键盘鼠标输入的元素所有的控件都继承于Control类. 1. 常用属性: 1.1 Foreground:前景画刷/前景色(文本颜色 ...

  2. tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)

    #### tomcat配置https 准备工作 下载好证书文件,下载的时候可以选择为tomcat文件.我这下载下来是压缩包.解压后就是下图的样子. 以.key结尾的文件是证书的key 以.pem结尾的 ...

  3. SpringBoot工程热部署

    SpringBoot工程热部署 1.在pom文件中添加热部署依赖 <!-- 热部署配置 --> <dependency> <groupId>org.springfr ...

  4. Pascal到c++,求大佬翻译!

    请大佬翻译完毕后私信我谢谢! var a,b,c,d,f:array[1..1000]of longint; i,j,k,n,m,o:longint; procedure zx(p,q:longint ...

  5. 洛谷P3905 道路重建

    题目:https://www.luogu.org/problemnew/show/P3905 分析: 此题是显然的最短路算法,只是看到一起删掉的一堆边感到十分棘手,而且还要求出的是最短添加边的总长度 ...

  6. [HAOI2006]聪明的猴子 题解

    题意: 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上.猴子不会游泳,但跳跃能力比较强,它们仍然可以在 ...

  7. 个人永久性免费-Excel催化剂功能第81波-指定单元格区域内容及公式填充

    在日常数据处理过程中,需要对缺失数据进行填充时,按一定逻辑规则进行处理,实现快速填充,规范数据源.此篇给大家带来多种填充数据的场景. 业务使用场景 对各种系统中导出的数据,很多时候存在数据缺失的情况, ...

  8. [小米OJ] 6. 交叉队列

    思路: 大概思想如下: 1. 动态规划求解,构造dp[][] 二维数组: 2. 设dp[i][j], i 为 第一个字符串的第i个字母:j 为 第二个字符串的第j个字母  3. dp[i][j] 如果 ...

  9. nginx配置目录访问&用户名密码控制

    背景 项目上需要一些共享目录让外地同事可以网页访问对应的文件,且受权限控制: 现有环境: centos nginx 你可以了解到以下内容: 配置nginx开启目录访问 并配置nginx用户名和密码进行 ...

  10. 关于C#多线程、易失域、锁的分享

    一.多线程 windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程,CLR(公共语言运行库)为该进程创建了一 ...