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

给网站做外链要注意哪些seo关键词排名优化报价

给网站做外链要注意哪些,seo关键词排名优化报价,自己有服务器如何建设微网站,南沙高端网站建设list功能介绍 c中list是使用双向链表实现的一个容器,这个容器可以实现。插入,删除等的操作。与vector相比,vector适合尾插和尾删(vector的实现是使用了动态数组的方式。在进行头删和头插的时候后面的数据会进行挪动,时…

list功能介绍

c++中list是使用双向链表实现的一个容器,这个容器可以实现。插入,删除等的操作。与vector相比,vector适合尾插和尾删(vector的实现是使用了动态数组的方式。在进行头删和头插的时候后面的数据会进行挪动,时间复炸度为O(N)),但是list更适合在任意位置的插入和删除。因为在要更改的位置进行节点的指向更改就可以插入数据。

在这里插入图片描述
在list中插入了6 ,但是的话在空间中没有改变数据的位置,只是改变了指向。这个时候时间复杂度为常数。

list的总要接口

list构造

在这里插入图片描述
构造函数(c++11增加了其他的构造函数,在这暂且不讲,可自行链接查询 list

默认构造函数

构建一个空链表

list (const allocator_type& alloc = allocator_type());

代码示例:

#include<list>
#include<iostream>list<int> mytest;  //调用默认构造函数

填充构造函数

构造一个具有 n 个元素的链表,每个元素的值都是 val。

list (size_type n, const value_type& val = value_type(), const allocator_type& alloc = allocator_type());

示例:

#include<list>
#include<iostream>list<int> mytest1;  //调用默认构造函数
list<int> mytest2(13,7); //13个元素,每个元素是7

范围构造器

使用迭代器构造一个list对象

 list (InputIterator first, InputIterator ,const allocator_type& alloc = allocator_type());

示例:

#include<list>
#include<iostream>list<int> mytest1;  //调用默认构造函数
list<int> mytest2(13,7); //13个元素,每个元素是7
list<int> mytest3(mytest2.begin(),mytest2.begin()+5); //使用mytest.2对mytest3进行初始化

拷贝构造函数

list (const list& x);

示例:

#include<list>
#include<iostream>list<int> mytest1;  //调用默认构造函数
list<int> mytest2(13,7); //13个元素,每个元素是7
list<int> mytest3(mytest2.begin(),mytest2.begin()+5); //使用mytest.2对mytest3进行初始化
list<int> mytest4(mytest3);//把mytest3拷贝给mytest4

capacity

函数声明和接口说明:

empty:检测list是否为空,如果为空,如果为空返回true,不为空返回false
size:返回对象中数据的个数

element access

函数声明和接口说明:

front:返回list中第一个元素
back:返回list中最后一个数据

modifiers

函数声明和接口说明:

push_front:在链表第一个位置进行头插
pop_front:删除链表第一个位置
push_back:在list尾部进行尾插
pop_back:删除尾部数据
insert:在list pos位置处进行数据插入
erase:删除list中pos的数据
swap:两个list对象进行交换
clear: 清空list中有效数据

注意:改文档只展示了常用list对象,若需要进行更多函数的学习可参考list文档

list迭代器失效问题

在C++中,list容器是一个双向链表,因此对它的插入和删除操作不会像vector那样导致整体内存拷贝,但是list的迭代器在某些操作中仍然会失效。

一、会导致迭代器失效的操作

  1. 删除元素(erase)

    • 删除某个元素会使指向该元素的迭代器失效。
    • 其他迭代器仍然有效。
    std::list<int> lst = {1, 2, 3, 4};
    auto it = lst.begin(); // 指向1
    it = lst.erase(it); // it指向被删除的元素1,失效,需要使用返回值更新it
    // 此时it指向2
    
  2. splice操作中目标位置的迭代器不失效,但被转移的元素的迭代器可能失效

二、安全的迭代方式

使用返回值来更新迭代器,防止因删除导致的失效:

for (auto it = lst.begin(); it != lst.end(); ) {if (*it % 2 == 0) {it = lst.erase(it); // 删除并更新迭代器} else {++it;}
}

三、总结

  • list的插入不会使其他迭代器失效。
  • list的删除操作会使被删除元素的迭代器失效。
  • 修改容器结构时,应小心处理返回值,确保不会访问失效的迭代器。

list的模拟实现

因为list的模拟实现代码篇幅长度较大,所有在这我展示我list模拟实现的gitee仓库,大家可进行访问和探讨,欢迎在评论区指出本文档错误

list的模拟实现

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

相关文章:

  • 做金融看哪些网站有哪些百度seo推广工具
  • 微信网页杭州关键词优化平台
  • 怎么看一个网站是谁做的北京百度科技有限公司电话
  • 如何做网络投票网站有什么平台可以发布推广信息
  • 山东住房和城乡建设部网站注册一个公司网站需要多少钱
  • 餐饮加盟培训网站建设营销网站建设推广
  • 上海网站建设价格网络黄页推广软件哪个好
  • 南宁做网站比较好的公司有哪些学设计什么培训机构好
  • 网站开发接私单世界最新新闻
  • 如何选择佛山网站建设北京seo推广外包
  • 如何查看网站是哪家公司做的?2345网址导航应用
  • 付运费送东西的网站怎么做6东莞seo建站优化工具
  • 网站建设 软件外贸seo推广公司
  • 搜英文关键词网站app运营推广策划方案
  • 如何做好一个购物网站网络营销的12种手段
  • 展示设计毕业论文题目推广seo是什么意思
  • 外贸网址建站本网站三天换一次域名
  • wordpress 缓存文件 手动删除seo排名优化培训怎样
  • 网站用哪个做福州seo外包公司
  • 网站域名怎么申请衡阳seo排名
  • 比较有特色的网站免费网站安全检测
  • 网站模块在线制作云南网络推广服务
  • 哪个网站可以做兼职网站seo诊断
  • 建设网站备案不通过怎么办怎么去推广自己的产品
  • 昆明城乡建设局网站seo营销技巧
  • 武汉双军网站建设公司如何加入百度推广
  • 银川做网站公司seo收费标准
  • 泰安新闻视频在线东莞seo搜索
  • 河南专业网站建设公司哪家好搜索引擎营销与seo优化
  • wordpress显示上传目录seo网络推广培训班