热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++中vector使用

最近接触到c++的vector,感觉很方便,之前参加了一些竞赛,涉及到一些算法的时候,一直觉得代码写的很冗余,很长的一段。C++的vector就可以解决这个问题,使用起来很方便。之

最近接触到c++的vector,感觉很方便,之前参加了一些竞赛,涉及到一些算法的时候,一直觉得代码写的很冗余,很长的一段。C++的vector就可以解决这个问题,使用起来很方便。

 

之前我们写数组都是int  array[]的形式,但是去遍历数组的时候总是要知道数组的大小才行,另外删除和插入数据时操作十分的繁琐,虽然可以也可以去用链表存,但是我们还是喜欢简单的方法,链表实在是比较麻烦….

现在有了容器以后,只需要vector v;

 

如果需要添加元素的话 只需要v.push_back();即可

 

如果需要删除数组的元素的话,使用v.erase(v.begin()+1);  删除的是第一个元素(但其实是第二个元素了,它也是从0开始计的(0,1,2……)  )我下面说的第几个,都是指从0开始的。

另外,它可以删除一段区间的所有元素。v.erase(v.begin()+1,v.begin()+5); 删除的是下标1,2,3,4的元素。并没有删除下标为5的元素,这一点需要注意!删除的是到v.begin()+5前一个元素为止的。

 

插入元素的话  使用v.insert(v.begin(),1);在第零个元素前面插1

v.insert(v.begin()+2,2);在第二个元素前插2

v.insert(v.end(),1000);注意 这个是在最后一个元素后面插的1000,而并不是最后一个的前面。大家可以自己自己试试。

 

另外在这里讲一下遍历。vector::iterator it; it

for(it=v.begin();it!=v.end();it++)

       cout<<*it<<‘ ‘;

       cout<

这样就可以遍历整个数组了,我c++的语法也有点忘记了,但是这里的it无非就是一个指针,暂且不去细究这个语法。

 

v.size();元素的个数

 

v.clear();清除所有元素

 

需要头文件#include

 1 #include
 2 #include
 3 using namespace std;
 4 int main()
 5 {
 6     vector<int>::iterator it;
 7     vector<int >  v;
 8     int i;
 9     for(i=0;i<10;i++)//添加10个元素 1,2,3.... 
10     {
11         v.push_back(i);
12     }
13     
14     for(it=v.begin();it!=v.end();it++)//遍历一下整个数组 
15     cout<<*it<<" ";
16     cout<<endl;
17     
18     v.erase(v.begin()+1);//删除的是第一个元素(下标从0开始)
19                         // 也就是1 ,所以现在是0,2,4...9 
20     v.insert(v.begin()+1,1);//把删除的再加进去 
21     v.erase(v.begin()+1,v.begin()+4);//删除的第1,2,3 的元素共三个元素
22     //也就是剩下的是 0,4,5,6,7,8,9
23     for(it=v.begin();it!=v.end();it++)//遍历一下整个数组 
24     cout<<*it<<" ";
25     cout<<endl;     
26     
27     cout<//看一下数组的大小
28     
29     v.clear();
30     
31     cout<endl;
32     return 0;
33              
34     
35     
36                         
37     
38 }

 

c++中vector使用


推荐阅读
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
author-avatar
9527
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有