c++ vector 常用函数示例解析

 更新时间:2020年07月21日 14:14:48   作者:赖兴宇  
这篇文章主要介绍了c++ vector 常用函数示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

c++ vector 常用函数

Just like arrays, vectors use contiguous storage locations for their elements, which means that their elements can also be accessed using offsets on regular pointers to its elements, and just as efficiently as in arrays. But unlike arrays, their size can change dynamically, with their storage being handled automatically by the container.

vector也是一个数组但是它的占用的内存大小是动态变化的。当vector占用的内存满了之后,就要重新分配内存,并且赋值原来的所有元素,为了避免频繁的重新分配内存,迁移数据。vector实际分配的内存比你需要的内存多。比如你有10个int的数据在vector中,vector实际占用的内存是20个int的内存, 当你数据占用超过实际占用内存的比例的时候,vector就会自动重新分配内存,迁移数据. vector实际占用的内存可以用capacity()来查看

#include<iostream>
#include<vector>
using namespace std;
int main(){
  vector<int> ans;
  for(int i=0; i<10; i++) ans.push_back(i);
  ans.erase(ans.begin()+2);
  cout<<"擦除第三个数字:";
  for(int j=0; j<ans.size(); j++) cout<<ans[j]<<" ";
  ans.erase(ans.begin(), ans.begin()+2);
  cout<<endl<<"擦除前2个数字:";
  for(int k=0; k<ans.size(); k++) cout<<ans[k]<<" ";
  //尽量不要频繁使用这个函数,会引起大量数据移动,降低程序效率
  ans.insert(ans.begin()+1, 100);
  cout<<endl<<"在第一位后面插入100:";
  for(int m=0; m<ans.size(); m++) cout<<ans[m]<<" ";
  //vector在声明的时候,可以申明大小和默认值
  vector<int> temp(5, -1);
  cout<<endl<<"temp的大小为5,默认值是-1:";
  for(int l=0; l<temp.size(); l++) cout<<temp[l]<<" ";
  //resize(int n)改变vector实际储存的数据个数, 如果n比实际个数多,则多出的位添加0,否则截取掉多余数据
  temp.resize(8);
  cout<<endl<<"把temp的大小改变位8:";
  for(int h=0; h<temp.size(); h++) cout<<temp[h]<<" ";
  //在改变vector大小的同时还能指定多余内存的值;这种方式只适用于分配的空间比原来的多的情况
  temp.resize(10, 1111);
  cout<<endl<<"temp的大小改为10,并且指定多出来空间的值位11111:";
  for(int g=0; g<temp.size(); g++)cout<<temp[g]<<" ";
  cout<<endl<<"获取temp的第一个元素:"<<temp.front()<<endl<<"获取temp的最后一个元素:"<<temp.back();
  //常用empty()和size函数来判断vector是否为空,当vector为空的时候, empty()返回true, size()的值为0
return 0;}

此外可以配合#include<algorithm>库中的unique函数来删除vector中的重复元素

vector<int> ans;
ans.erase(unique(ans.begin(), ans.end()), ans.end());

到此这篇关于c++ vector 常用函数示例解析的文章就介绍到这了,更多相关c++ vector 常用函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++实现十进制数转换为二进制数的数学算法

    C++实现十进制数转换为二进制数的数学算法

    这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数十进制的转换,后续会更新带有小数的进制转换,代码使用c++实现
    2021-09-09
  • C++中this指针的理解与作用详解

    C++中this指针的理解与作用详解

    这篇文章主要给大家介绍了关于C++中this指针的理解与作用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • 使用C语言中的time函数获取系统时间

    使用C语言中的time函数获取系统时间

    在C语言中可以使用time函数来获取系统时间,以下对time函数进行了介绍,需要的朋友可以过来参考下
    2013-07-07
  • C++实现图像目标区裁剪ImageCropping

    C++实现图像目标区裁剪ImageCropping

    本文主要介绍了C++实现图像目标区裁剪ImageCropping,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 简单讲解C++的内部和外部函数以及宏的定义

    简单讲解C++的内部和外部函数以及宏的定义

    这篇文章主要介绍了简单讲解C++的内部和外部函数以及宏的定义,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • C语言 数据结构双向链表简单实例

    C语言 数据结构双向链表简单实例

    这篇文章主要介绍了C语言 数据结构双向链表简单实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言详细讲解指针数组的用法

    C语言详细讲解指针数组的用法

    在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活
    2022-05-05
  • C++实用库之字节流合成器

    C++实用库之字节流合成器

    在处理跨平台的数据交换或网络通信时,字节流的重要性更加突出,不同的系统可能有不同的字节序(大端序或小端序),因此在发送和接收字节流时,可能需要考虑字节序的转换,这篇文章主要介绍了C++实用库之字节流合成器,需要的朋友可以参考下
    2024-04-04
  • C语言实现阶乘的示例详解

    C语言实现阶乘的示例详解

    在现实中,我们做数学题总会遇到阶乘问题,这在计算机中也不例外。 那我们应该怎么实现呢?下面小编就为大家讲解一下C语言中阶乘的实现
    2022-07-07
  • C/C++产生指定范围和不定范围随机数的实例代码

    C/C++产生指定范围和不定范围随机数的实例代码

    C/C++产生随机数用到两个函数rand() 和 srand(),这里介绍不指定范围产生随机数和指定范围产生随机数的方法代码大家参考使用
    2013-11-11

最新评论