当前位置: 首页 > wzjs >正文

哈尔滨市建设工程交易中心重庆专业seo

哈尔滨市建设工程交易中心,重庆专业seo,用自己的照片做头像的网站,b2b网站的分类vector 和 list 都是C 标准模板库(STL)中的容器,它们的区别如下: 内存结构 - vector :是连续的内存空间,就像数组一样,元素在内存中依次排列。 - list :是由节点组成的双向链表…

vector  和  list  都是C++ 标准模板库(STL)中的容器,它们的区别如下:

 

内存结构

 

-  vector :是连续的内存空间,就像数组一样,元素在内存中依次排列。

 

-  list :是由节点组成的双向链表,每个节点包含数据和指向前一个及后一个节点的指针,节点在内存中不连续。

 

随机访问

 

-  vector :支持随机访问,可以通过下标快速访问元素,时间复杂度为 O(1)。

 

-  list :不支持随机访问,要访问某个元素,需要从链表头或尾开始逐个遍历,时间复杂度为 O(n)。

 

插入和删除操作

 

-  vector :在尾部插入和删除元素效率较高,时间复杂度为 O(1)。但在中间或头部插入和删除元素时,需要移动大量元素,效率较低,时间复杂度为 O(n)。

 

-  list :在任何位置插入和删除元素都非常高效,只需修改相应节点的指针,时间复杂度为 O(1)。

 

迭代器

 

-  vector :迭代器是普通指针,支持  ++ 、 -- 、 +n 、 -n  等操作,可以直接进行算术运算来访问不同位置的元素。

 

-  list :迭代器是双向链表的节点指针,只支持  ++  和  --  操作来逐个遍历链表。

 

空间占用

 

-  vector :由于是连续内存,可能会预分配一些额外空间,以减少重新分配内存的次数,因此实际占用空间可能比存储元素所需空间略大。

 

-  list :每个节点除了存储数据外,还需要额外的空间存储指针,所以对于大量数据, list  的空间占用可能比  vector  大。

 

在实际应用中,如果需要频繁随机访问元素, vector  是较好的选择;如果需要频繁在容器中间插入和删除元素, list  更为合适。

#include <iostream>

#include <vector>

#include <list>

 

void printVector(const std::vector<int>& vec) {

    for (const auto& num : vec) {

        std::cout << num << " ";

    }

    std::cout << std::endl;

}

 

void printList(const std::list<int>& lst) {

    for (const auto& num : lst) {

        std::cout << num << " ";

    }

    std::cout << std::endl;

}

 

int main() {

    // vector用法示例

    std::vector<int> vec;

    // 尾部插入元素

    vec.push_back(1);

    vec.push_back(2);

    vec.push_back(3);

 

    std::cout << "Vector: ";

    printVector(vec);

 

    // 随机访问元素

    std::cout << "Element at index 1: " << vec[1] << std::endl;

 

    // 在中间插入元素

    vec.insert(vec.begin() + 1, 4);

    std::cout << "Vector after insertion: ";

    printVector(vec);

 

    // 删除元素

    vec.erase(vec.begin() + 2);

    std::cout << "Vector after deletion: ";

    printVector(vec);

 

    // list用法示例

    std::list<int> lst;

    // 头部插入元素

    lst.push_front(5);

    lst.push_front(4);

    lst.push_front(3);

 

    std::cout << "List: ";

    printList(lst);

 

    // 在中间插入元素

    auto it = lst.begin();

    std::advance(it, 1);

    lst.insert(it, 6);

    std::cout << "List after insertion: ";

    printList(lst);

 

    // 删除元素

    it = lst.begin();

    std::advance(it, 2);

    lst.erase(it);

    std::cout << "List after deletion: ";

    printList(lst);

 

    return 0;

}

 

http://www.dtcms.com/wzjs/396747.html

相关文章:

  • 什么专业就业前景好天津seo公司
  • 武汉制作网站公司网站优化排名操作
  • 做网站 模板排名sem优化软件
  • 炫酷网站欣赏一周热点新闻
  • 卖家做批发发布信息网站有哪些重庆网站seo服务
  • 云南住建局和城乡建设报考网站百度推广托管
  • 西宁做网站哪家好seo方法
  • 移动端商城网站开发疫情最新情况 最新消息 全国
  • 网站建设费用 百度文库品牌seo是什么意思
  • 榆林哪里做网站seo入门版
  • 网站架构设计师如何提高网站的自然排名
  • 淘宝联盟怎么做自己的网站seo搜索工具栏
  • 织梦怎么做门户网站佛山做网站建设
  • 仿站怎么修改成自己的网站网络广告策划书范文
  • 网站备案提交管局关键词智能优化排名
  • 长沙网站制作工作室谷歌搜索广告
  • 个人网站设计模板田田田田田田田田外链服务
  • 画册设计公司网站企业互联网推广
  • 订餐网站系统建设方案百度云盘网官网
  • 做公司网站棋牌手机创建网站教程
  • wordpress首页不显示全文谷歌排名优化
  • 广东网页空间网站搜索引擎优化seo什么意思
  • 寿光住房和城乡建设局网站百度网址大全首页链接
  • 加强网站党建频道建设广告安装接单app
  • 监控网站模版如何做好网络营销工作
  • 西部数码网站管理助手卸载网站建设企业
  • 有哪些做公司网站优化seo是什么意思
  • 电商做网站什么意思seo投放
  • 网站建设员招聘搜索引擎营销流程是什么?
  • 没有网站做APP免费seo网站诊断