专栏首页mathorC++STL中vector使用策略(一)

C++STL中vector使用策略(一)

       vector是STL中一种可变大小数组的序列容器。就像数组一样,vector也采用连续存储空间来存储元素,也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效,但是又不像数组,它的大小是动态改变的。

       为了可以使用vector,必须在你的头文件中包含下面的代码

#include <vector>

创建一个vector

//
创建一个type类型的空vector对象a
 vector<type> a;
 //创建包含500个type类型的vercot
 vector<type> a(500);
 //创建包含500个tyep类型的vector,并且都初始化为0
 vector<type> a(500,0);
 //创建一个a的拷贝b
 vector<type> b(a);

向vector添加一个数据

/*vector添加数据的缺省方法是push_back()。push_back()函数表示将数据添加到vector的尾部,并按需分配内存。例如,向vector<int> a中添加9个数据*/
 for(int i = 1;I < 10;i++)
 {
     cin>>n;
    a.push_back(n);
 }

       访问vector中的数据

//a.at();
 //a[];
 vector<int> v;
 for(int i = 0; i < 7; i++)
 {
     v.push_back(i);
 }
 cout<<v.at(6)<<endl;
 cout<<v[6];

删除vector中的数据

 /.erase(it)
 vector<int>::iterator it = v.begin();
 while(it != v.end())
 {
     if(x == *it)//x为要删除的值,不是下标
     {
       /.erase(it);//容器在删除或插入一个元素后,原来的迭代器会失效
     it = v.erase(it);//这才是正确用法
   }
   else
       ++it;
 }
    it = v.begin();
   while(it != v.end())
   {
     cout<<*it<<endl;
     it++;
   }

       vector成员函数(容量)

函数

意义

v.size()

容量大小

v.max_size()

向量最大容量

v.resize()

更改向量大小

v.capacity()

向量真实大小

v.empty()

向量判空

       vector成员函数(修改)

函数

意义

v.assign()

多个元素赋值

v.push_back()

末尾添加元素

v.pop_back()

末尾删除元素

v.inser(it,n,x)

在迭代器it的前面插入n元素x

v.erase()

删除当前迭代器位置的元素

v.swap()

交换两个向量元素

v.clear()

清空向量元素

       vector成员函数(迭代器)

函数

意义

v.begin()

开始指针

v.end()

末尾指针

       vector成员函数(元素访问)

函数

意义

v[1]

下标访问

v.at(1)

下标访问

v.front()

访问第一个元素

v.back()

访问最后一个元素

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 科学计算库Numpy

     genfromtxt函数里穿了三个参数,分别是 要打开的文档名称,分隔符,以什么类型存储  打印结果:

    mathor
  • C++STL中vector使用策略(二)

    mathor
  • Logistic Regression Cost Function

    为了训练逻辑回归模型的参数$\omega$和参数$b$,我们需要一个代价函数,通过训练代价函数来得到参数和参数。先看一下逻辑回归的输出函数:

    mathor
  • C++STL vector详解(杂谈)

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

    Angel_Kitty
  • STL vector list deque区别与实现

        向量 相当于一个数组     在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预...

    阳光岛主
  • C++の容器vector

    上一篇文章C++のstring类,我们讲了一下C++中的string类,简单梳理了string对象的创建方式,数据操作等,今天我们继续介绍C++中另外一个概念v...

    leoay
  • leetcode-867-Transpose Matrix(矩阵由按行存储变成按列存储)

    Given a matrix A, return the transpose of A.

    chenjx85
  • PhysX学习笔记(1): 基础

    逍遥剑客
  • numpy:数据类型转换

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    程裕强
  • 打印锯齿矩阵

    锯齿矩阵是指每一行包含的元素个数不相同的矩阵,比如: 1 3 5 2 6 1 2 2 3 4 3 1 6 2 7 读入若干对整数 (...

    Enterprise_

扫码关注云+社区

领取腾讯云代金券