c++算法——vector

这篇具有很好参考价值的文章主要介绍了c++算法——vector。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vector

        vector 是标准模板库的一个容器,直接翻译为“向量”,一般来成“可变长数组”,也即“长度会根据需要而变化的数组”。在竞赛中有些题目需要很大的很大的数组,而有些还用不上就需要用到 vector 。

        使用 vector 首先要加#include <vector>,当然万能头也包含他,同时,必须要有 “using namespace std;”。

vector 定义

定义一个 vector 方法如下:

vector<int> a;//int类型的vector
vector<double> a;//double的
vector<char> a;//字符的
vector<node> a;//node是个结构体,结构体类型的

vector数组定义

vector<int> a[100];//定义一个一维长度固定为100(行固定),另一个维度不固定(列不固定)

vector<vector<int> > a;//定义一个两个维度都可以变的二维数组 

vector访问

1,下标访问

他可以使用数组的访问方法a[i]

 2,迭代器访问

vector<int>::iterator it;  //定义迭代器

可以通过*it来访问 。

vector常用函数                           作用

  1. push_back(元素)         添加一个元素到 vector 后边,时间复杂度O(1)
  2. pop_back()                  弹出(删除) vector 的最后一个元素,复杂度O(1)
  3. insert(位置,元素)       插入元素x到 vector 的指定位置it(迭代器)处,复杂度O(n)
  4. erase(位置)                  删除 vector 指定位置的元素
  5. clear()                          清除 vector 所有元素,size变为0,复杂度O(n)
  6. front()                           取 vector 的第一个元素
  7. back()                           取 vector 的最后一个元素
  8. begin()                          vector 的的第一个元素的位置,返回第一个元素的迭代器
  9. end()                             返回最后一个元素的后面位置(不是最后一个元素的迭代器)
  10. size()                             元素个数,vector 的大小,即 vector 中已有的元素的个数
  11. resize(大小)                  重新设置 vector 的大小
  12. empty                            判断 vector 是否为空

例题 

中间数

题目描述

依次读入若干正整数,如果是奇数个就输出最中间的那个数;否则,输出中间两个数的和。

以 0 作为结束标志,但 0 不计数。

输入格式

一行若干个正整数,为 0 为结束标志。

输出格式

一个数。文章来源地址https://www.toymoban.com/news/detail-423333.html

样例输入

1 2 3 0

样例输出

2

样例输入

1 2 3 4 0

样例输出

5

到了这里,关于c++算法——vector的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 16 标准模板库STL之vector

    基础知识         1、vector和数组有点类似,但它比数组更好用。一般来说,数组的长度是不能动态拓展的,因此就需要考虑长度到底多大合适。长度不能过大,否则浪费内存;也不能过小,否则内存不够。vector正好弥补了这个缺陷,相当于一个可以自动改变数组长度的动

    2023年04月17日
    浏览(39)
  • pair 是 C++ 标准库中的一个模板类,用于存储两个对象的组合

    pair 是 C++ 标准库中的一个模板类,用于存储两个对象的组合。它位于 utility 头文件中。 pair 类的定义如下: pair 类有两个公共成员变量: first 和 second ,分别用于存储两个对象。成员变量的类型可以是任意类型,包括内置类型、自定义类型和指针类型等。 以下是一个使用

    2024年02月09日
    浏览(35)
  • C++、STL标准模板库和泛型编程 ——迭代器、 算法、仿函数(侯捷)

    侯捷 C++八部曲笔记汇总 - - - 持续更新 ! ! ! 一、C++ 面向对象高级开发 1、C++面向对象高级编程(上) 2、C++面向对象高级编程(下) 二、STL 标准库和泛型编程 1、分配器、序列式容器 2、关联式容器 3、迭代器、 算法、仿函数 4、适配器、补充 三、C++ 设计模式 四、C++ 新标准 五、

    2023年04月25日
    浏览(38)
  • 48.C++ vector容器(模板类)

    今天学习了C++中的vector容器,它提供动态数组功能,方便管理和存储数据。支持动态调整大小,简化了数组操作,使代码更灵活、高效。实在是太牛了,后悔没有早点学习容器。 目录 一、vector简介 二、头文件和命名空间  三、vector的基本用法  (1)初始化 (2)访问元素

    2024年02月14日
    浏览(28)
  • 15 标准模板库STL之容器1

    基础知识         1、vector和数组有点类似,但它比数组更好用。一般来说,数组的长度是不能动态拓展的,因此就需要考虑长度到底多大合适。长度不能过大,否则浪费内存;也不能过小,否则内存不够。vector正好弥补了这个缺陷,相当于一个可以自动改变数组长度的动

    2023年04月12日
    浏览(30)
  • C++ 命名空间 & vector & 模板

             为了区分不同库中相同名称的函数、类、变量等,引入概念:命名空间。它可作为附加信息来帮助区分它们。使用了命名空间即定义了上下文,本质上就是定义了一个范围。                   命名空间的定义使用  namespace ,后跟命名空间的名称,如下所

    2024年02月09日
    浏览(32)
  • 22 标准模板库STL之容器适配器

    概述         提到适配器,我们的第一印象是想到设计模式中的适配器模式:将一个类的接口转化为另一个类的接口,使原本不兼容而不能合作的两个类,可以一起工作。STL中的容器适配器与此类似,是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一

    2024年02月05日
    浏览(30)
  • C++中的vector容器

      vector是封装动态数组的顺序容器。   就像数组一样,vector也采用的连续存储空间来存储元素。这也就意味着我们可以通过下标来获取vector的元素,和数组一样高效。但是又不像数组,vector的大小是可以动态改变的,且它的大小会被容器自动处理。   本质上,vector使

    2023年04月24日
    浏览(39)
  • 【C++】vector容器初步模拟

    送给大家一句话: 努力一点,漂亮—点,阳光一点。早晚有一天,你会惊艳了时光,既无人能替,又光芒万丈。 今天我我来进行vector的模拟实现,先简单的实现一下初步功能,使其对内置类型可以适配。(大部分与string很类似) vector是表示 可变大小数组 的序列容器。 就像

    2024年04月08日
    浏览(75)
  • C++提高编程——STL:string容器、vector容器

    本专栏记录C++学习过程包括C++基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下, 不定时更新,欢迎关注 。 当前章节处于: ---------第1阶段-C++基础入门 ---------第2阶段实战-通讯录管理系统, ---------第3阶段-C++核心编程, -----

    2024年01月23日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包