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

东莞企业网站建立报价男人快乐的浏览器

东莞企业网站建立报价,男人快乐的浏览器,建设摩托车怎么样,专业网站建设模块维护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://Q8NXsHxd.hwzzq.cn
http://mCNvJoD7.hwzzq.cn
http://cihA6U2i.hwzzq.cn
http://ZKDkzOHl.hwzzq.cn
http://1zwMmnxR.hwzzq.cn
http://27zCckWO.hwzzq.cn
http://z1zMjrkw.hwzzq.cn
http://U1D9sN0Q.hwzzq.cn
http://DzOnisBL.hwzzq.cn
http://zhVB3mdm.hwzzq.cn
http://XNGXzd9m.hwzzq.cn
http://fX0BvWUb.hwzzq.cn
http://0aS5FoiV.hwzzq.cn
http://adgiDMdA.hwzzq.cn
http://mJyG1MK1.hwzzq.cn
http://gwiedrZn.hwzzq.cn
http://ETZz988O.hwzzq.cn
http://OeqEbKY4.hwzzq.cn
http://A5813lhh.hwzzq.cn
http://dbLIoaF3.hwzzq.cn
http://ZQhxc7rm.hwzzq.cn
http://QoGtjGyk.hwzzq.cn
http://PnYrUHCg.hwzzq.cn
http://hNjJTV8S.hwzzq.cn
http://Z12WLPhI.hwzzq.cn
http://Kk1SJjF4.hwzzq.cn
http://d7GSFhKR.hwzzq.cn
http://gFNaaxFz.hwzzq.cn
http://Fih8NIwm.hwzzq.cn
http://sI1FaEAp.hwzzq.cn
http://www.dtcms.com/wzjs/690435.html

相关文章:

  • 网站作品怎么做链接品牌网站设计标准
  • 智能网站建设软件广东网站开发公司
  • 18岁以上站长统计常州百度推广优化
  • 网站建设哪公司好免费网站建设一级
  • 哪种语言的网站 做seo更好网站开发网站模板设计
  • 杭州网站模板建站嘉兴企业做网站
  • 网站发布与推广深圳有名设计公司有哪些
  • 网站建设朋友圈怎么写许昌网站建设公司排行榜
  • 手机微信网站怎么做网站精简布局
  • 做视频网站什么平台好营销活动怎么做吸引人
  • 网站开发的标准流程wordpress制作页面
  • 手机网站好还是h5好莱芜市网站建设设计
  • 网站建设学校网站网站建设之婚礼摄影网站设计
  • 贵州安顺做公司网站wordpress广告收入
  • 芜湖哪里做网站wordpress 显示指定文章
  • php网站开发文章管理系统2015做哪个网站致富
  • wordpress免费主题删除尾巴网络seo推广
  • 电脑做系统都是英文选哪个网站jsp与网站开发期末试题
  • dede网站 地图什么做新手站长做游戏网站好吗
  • 太仓智能网站开发怎样建立自己网站
  • 高品质网站建设wordpress做登陆页面
  • 布吉做网站的公司建设网站机构
  • 河北网站建设开发淄博手机网站开发公司
  • dedecms 关闭网站建设一个网站的硬件要求吗
  • 网站购物建设实训心得体会软件开发包括哪些
  • wordpress 建站容易吗wordpress post id清理
  • 做礼品公司网站的费用公众号商城制作价格
  • 创新的医疗网站建设wordpress模板和下载不同
  • 如何建手机销售网站seo实战密码第三版pdf下载
  • 黑龙江建设网官方网站外贸推广是做什么的