vector

作者: 步行植物 | 来源:发表于2019-05-26 19:10 被阅读0次

转载:https://www.cnblogs.com/aminxu/p/4686332.html

vector<int> a ;                                //声明一个int型向量a
vector<int> a(10) ;                            //声明一个初始大小为10的向量
vector<int> a(10, 1) ;                         //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ;                             //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ;        //将a向量中从第0个到第2个(共3个)作为向量b的初始值

元素的输入及访问:

#include<iostream>
#include<vector>
using namespace std ;
int main()
    {
        vector<int> a(10, 0) ;      //大小为10初值为0的向量a

        //对其中部分元素进行输入
        cin >>a[2] ;
        cin >>a[5] ;
        cin >>a[6] ;

        //全部输出
        int i ;
        for(i=0; i<a.size(); i++)
            cout<<a[i]<<" " ;

        return 0 ;
    }

基本操作

1>. a.size()                 //获取向量中的元素个数


    2>. a.empty()                //判断向量是否为空


    3>. a.clear()                //清空向量中的元素


    4>. 复制
        a = b ;            //将b向量复制到a向量中


    5>. 比较
        保持 ==、!=、>、>=、<、<= 的惯有含义 ;
        如: a == b ;    //a向量与b向量比较, 相等则返回1


    6>. 插入 - insert
        ①、 a.insert(a.begin(), 1000);            //将1000插入到向量a的起始位置前
        
        ②、 a.insert(a.begin(), 3, 1000) ;        //将1000分别插入到向量元素位置的0-2处(共3个元素)
        
        ③、 vector<int> a(5, 1) ;
            vector<int> b(10) ;
            b.insert(b.begin(), a.begin(), a.end()) ;        //将a.begin(), a.end()之间的全部元素插入到b.begin()前


    7>. 删除 - erase
        ①、 b.erase(b.begin()) ;                     //将起始位置的元素删除
        ②、 b.erase(b.begin(), b.begin()+3) ;        //将(b.begin(), b.begin()+3)之间的元素删除


    8>. 交换 - swap
        b.swap(a) ;            //a向量与b向量进行交换
  1. 在C++中的详细说明
    vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
    vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,
    简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
  1. 使用vector,
    必须在你的头文件中包含下面的代码:

include <vector>

vector属于std命名域的,因此需要通过命名限定,如下完成你的代码:
  using std::vector;
  vector vInts;
  
或者连在一起,使用全名:
std::vector vInts;
  
建议使用全局的命名域方式:
using namespace std;

  1. 初始化
    vector // 创建一个空的vector。
    vector c1(c2) // 复制一个vector
    vector c(n) // 创建一个vector,含有n个数据,数据均已缺省构造产生
    vector c(n, elem) // 创建一个含有n个elem拷贝的vector
    vector c(beg,end) // 创建一个含有n个elem拷贝的vector
  1. 析构函数
    c.~vector () // 销毁所有数据,释放内存
  1. 成员函数
    c.assign(beg,end)c.assign(n,elem)
      将[beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。
    c.at(idx)
      传回索引idx所指的数据,如果idx越界,抛出out_of_range。

c.back() // 传回最后一个数据,不检查这个数据是否存在。
c.begin() // 传回迭代器中的第一个数据地址。
c.capacity() // 返回容器中数据个数。
c.clear() // 移除容器中所有数据。
c.empty() // 判断容器是否为空。
c.end() // 指向迭代器中末端元素的下一个,指向一个不存在元素。
c.erase(pos) // 删除pos位置的数据,传回下一个数据的位置。
c.erase(beg,end) //删除[beg,end)区间的数据,传回下一个数据的位置。
c.front() // 传回第一个数据。

get_allocator // 使用构造函数返回一个拷贝。

c.insert(pos,elem) // 在pos位置插入一个elem拷贝,传回新数据位置。
c.insert(pos,n,elem) // 在pos位置插入n个elem数据。无返回值。
c.insert(pos,beg,end) // 在pos位置插入在[beg,end)区间的数据。无返回值。
  
c.max_size() // 返回容器中最大数据的数量。
c.pop_back() // 删除最后一个数据。
c.push_back(elem) // 在尾部加入一个数据。
c.rbegin() // 传回一个逆向队列的第一个数据。
c.rend() // 传回一个逆向队列的最后一个数据的下一个位置。
c.resize(num) // 重新指定队列的长度。
c.reserve() // 保留适当的容量。
c.size() // 返回容器中实际数据的个数。
c1.swap(c2)
swap(c1,c2) // 将c1和c2元素互换。同上操作。

operator[] // 返回容器中指定位置的一个引用。

相关文章

  • c++常用数据结构

    问题:vector与数组的区别? 1、vector vector v;//创建vector v....

  • 指针

    ①动态指针问题. vector * pvt = new vector [100]; vector * tt; tt...

  • 2021-12-01 opencv findContours a

    std::vector contours; std::vector hi...

  • 13.C++ vector 操作

    vector初始化 vector大小 数组方式操作vector 迭代器方式操作vector 反向迭代器操作vect...

  • c++零散知识

    1、vector vector对象内存增长原理,当向vector添加新元素而vector没有足够的内存保存新元素时...

  • vector

    一、vector介绍:可边长数组1、vector的定义:vector name;注:vecto...

  • Collection-Vector

    jdk版本:1.8.0_77参考文档:jdk 1.8 docs Vector类图 Vector特点 Vector对...

  • vector 简单用法

    vector 简单用法 数组传进vector方式: int a[3]={1,2,3} vector test;...

  • 点乘与叉乘

    public static Vector3 Cross(Vector3 lhs, Vector3 rhs);叉乘的...

  • 1.两数之和 by 2018-04-19

    class Solution {public:vector twoSum(vector & nums, int ...

网友评论

      本文标题:vector

      本文链接:https://www.haomeiwen.com/subject/zopftctx.html