C++ vector用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。

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();

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;}

3  算法

(1) 使用reverse将元素翻转:需要头文件#include<algorithm>

reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,

一般后一个都不包含.)

(2)使用sort排序:需要头文件#include<algorithm>,

sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).

可以通过重写排序比较函数按照降序比较,如下:

定义排序比较函数:

bool Comp(const int &a,const int &b)
{
    return a>b;
}
调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

C++ vector用法相关推荐

  1. boost::mpl::vector用法的测试程序

    boost::mpl::vector用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::vector用法的测试程序 C++实现代码 #include <boost/han ...

  2. boost::fusion::vector用法的测试程序

    boost::fusion::vector用法的测试程序 实现功能 C++实现代码 实现功能 boost::fusion::vector用法的测试程序 C++实现代码 #include <boo ...

  3. c vector用法是什么

    在c 中,vector是一个十分有用的容器,c vector用法是: 1.基本操作 (1)头文件#include. (2)创建vector对象,vector vec; (3)尾部插入数字:vec.pu ...

  4. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

  5. STL vector用法介绍

    STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...

  6. bk-02 C++ vector用法 博客园

    HappyWorking! 博客园 管理 C++ vector用法 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vect ...

  7. C++ map用法总结和vector用法总结

    本文仅是用于自己查找方便而写,并不专业,如果想看详解,请查看C++ map用法总结(整理)和C++ Vector的用法总结(整理) map用法总结 map是STL的一个关联容器,为key和value的 ...

  8. c语言 vector用法,C++ vector用法初记

    C++ vector用法小记 最近在leetcode上面做题,STL的vector用的甚多,这里稍微的总结下vector的一些常用方法,包括一维的和二维的,暂时能想到的就给记下了. 一维vector ...

  9. C++ STL初学之vector用法及使用

    一.在C++中的详细说明 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. vector之所以被认为是一个容器,是因为它能够像容器一样存放各种 ...

最新文章

  1. kali最新国内更新源sources
  2. 【工具】公网临时大文件传输工具,文件发送,高速文件传输方法
  3. 基于LSTM的情感分类案例:Tensorflow代码
  4. linux编辑文本文件aa的命令,linux入门必须掌握的命令--文本文件编辑
  5. C语言实现DES加解密算法
  6. Spring Boot系列教程七:Spring boot集成MyBatis
  7. 锁定计算机好在下游戏吗,巧用win7锁定计算机防止孩子沉迷游戏
  8. 【SQL】含有NULL值的排序
  9. React Native 首次加载白屏优化
  10. Futter基础第16篇: 实现单行文本框、多选框
  11. mysql 中文 转 拼音_MySQL中文转换成拼音的函数
  12. thinkpad锁屏壁纸存放目录
  13. aurora 64B/66B ip核设置与例程代码详解
  14. c语言中等于号和大于号的优先级,C  读书笔记之 关系运算符重载 大于号 小于号  等于号==...
  15. JS-DOM操作基础
  16. 在win10系统中应用iverilog(Icarus verilog)学习笔记
  17. PAT 甲级 1015. Reversible Primes
  18. Ubuntu Budgie 22.04 设置中文语言并安装拼音输入法
  19. Python super( ) 函数详解
  20. 金庸的「射雕三部曲」,其实还有一个隐藏的第一部

热门文章

  1. shell判定一个变量等于-n_Shell test命令:条件判断,检查某条件是否成立
  2. python代替shell脚本_python的简洁是shell无法代替的
  3. java音频采样_音频重采样的坑
  4. 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
  5. python jieba词频统计英文文本_python实战,中文自然语言处理,应用jieba库来统计文本词频...
  6. 正在等待语音服务器回应,Python如何突破正在等待服务器响应的阻塞生成器?
  7. python自动发送邮件不需要发件邮箱_python使用QQ邮箱实现自动发送邮件
  8. mysql bug_MySQL 记一次 Bug发现过程
  9. 【学习笔记】第一章——操作系统的中断和异常
  10. python等腰梯形_简单空实心图形打印|Python练习系列[3]