vector与list的区别与应用?

vector与list的区别与应用?以及怎么找到某vector或者list的倒数第二个元素?

vector和list的区别可以类比数组和链表的区别:

        vector和数组类似,vector是一个在内存中连续存放且可以自动增长的容器,因此支持随机访问,随机访问的时间复杂度是O(1),跟数组类型。因为是连续存放的,因此插入和删除元素的时间复杂度较高(除了在尾部进行插入和删除),原因是插入元素需要将该位置的元素后面的所有元素都移动出一格来存放该插入元素,删除就要将该位置后面的元素往前挪,因此其为O(n)。

        list是由双向链表实现的,双向链表就是结点有三个成员,分别是当前结点的值,指向上一个结点的指针以及指向下一个结点的指针。我们知道链表不支持随机访问,访问一个结点的数据的时间复杂度为O(n),要找的结点需要从当前位置向前或者向后遍历出来,而不能随机访问。但是list很适合插入和删除一个结点,只需要改变指针的指向就可以了,时间复杂度为O(1)。

访问vector倒数第二个元素:

///<vector
std::vector<int > v{1, 2, 3, 4, 5};
int len = v.size();
std::cout << v[len-2] << std::endl;


///<list
//list是双向链表不能直接随机访问
#include <iostream>
#include <list>

int main() {
    std::list<int> myList {1, 2, 3, 4, 5};

    if(myList.size() >= 2) {
        std::list<int>::reverse_iterator rit = myList.rbegin();
        ++rit;  // 移动迭代器到倒数第二个元素
        std::cout << "倒数第二个元素是:" << *rit << std::endl;
    } else {
        std::cout << "列表元素不足两个。" << std::endl;
    }

    return 0;
}

相关推荐

  1. vectorlist区别应用

    2024-03-14 19:44:05       47 阅读
  2. Python:list列表tuple元组区别

    2024-03-14 19:44:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 19:44:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 19:44:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 19:44:05       82 阅读
  4. Python语言-面向对象

    2024-03-14 19:44:05       91 阅读

热门阅读

  1. 依赖注入与控制反转:优化Go语言REST API客户端

    2024-03-14 19:44:05       39 阅读
  2. 探索信号处理:低通滤波器的原理与应用

    2024-03-14 19:44:05       36 阅读
  3. ts中高阶类型的理解

    2024-03-14 19:44:05       38 阅读
  4. 最少刷题数

    2024-03-14 19:44:05       42 阅读
  5. 工作随记:oracle重建一张1T数据量的大表

    2024-03-14 19:44:05       47 阅读
  6. c#计算闰年

    2024-03-14 19:44:05       36 阅读
  7. 基于ElasticSearch的海量AIS数据存储方法

    2024-03-14 19:44:05       44 阅读
  8. 【Python】-闲聊:如何系统的自学Ptyhon

    2024-03-14 19:44:05       45 阅读
  9. PHP序列化基础知识储备

    2024-03-14 19:44:05       38 阅读
  10. Oracle——用户、角色、权限的创建、删除、修改

    2024-03-14 19:44:05       41 阅读
  11. day2-C++

    day2-C++

    2024-03-14 19:44:05      31 阅读
  12. 当代计算机语言占比分析

    2024-03-14 19:44:05       50 阅读
  13. 文件系统事件监听

    2024-03-14 19:44:05       43 阅读