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

asp网站建设举一个网络营销的例子

asp网站建设,举一个网络营销的例子,个人网站 做啥好,网站免费软件苹果目录 一.list 1.list的介绍 2.为什么会有list? 二.list的常见接口 1.list的构造函数 2.list的遍历 3.迭代器类型 4.list的头插头删和尾插尾删 5.list任意位置的插入和删除 6.list的sort()及reverse() 7.迭代器失效 三.整体代码 一.list 1.list的介绍 list的文档说…

目录

一.list

1.list的介绍

2.为什么会有list?

二.list的常见接口

1.list的构造函数

2.list的遍历

3.迭代器类型

4.list的头插头删和尾插尾删

5.list任意位置的插入和删除

6.list的sort()及reverse()

7.迭代器失效

三.整体代码


一.list

1.list的介绍

list的文档说明

  1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代
  2. ist的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素
  3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效
  4. 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好
  5. 与其他序列式容器相比,list和forward_list最大的缺陷是不支持任意位置的随机访问,比如:要访问list 的第6个元素,必须从已知的位置(比如头部或者尾部)迭代到该位置,在这段位置上迭代需要线性的时间开销;list还需要一些额外的空间,以保存每个节点的相关联信息(对于存储类型较小元素的大list来说这可能是一个重要的因素)

2.为什么会有list?

list是为了补充vector的缺点

vector缺点:

  1. 头部和中部的删除和插入效率低.O(N),因为需要挪动数据
  2. 插入数据空间不够需要增容.增容需要开辟新空间,拷贝数据,释放旧空间,会付出很大代价

优点:

  1. 支持下标的随机访问.间接的就很好支持排序,二分查找,堆算法等.

list优点:

  1. list头部和中间插入不需要挪动数据,效率高.O(1)
  2. list插入数据是新增节点,不需要增容

缺点:

  1. 不支持随机访问

所以实际使用中vector和list是相辅相成

二.list的常见接口

list的接口较为简单,学会使用vector,list的接口基本差不多,主要在下节了解如何实现list

1.list的构造函数

void print_list(const list<int>& lt)
{list<int>::const_iterator it = lt.begin();while (it != lt.end()){cout << *it << " ";++it;}cout << endl;
}void test_list1()
{//带头双向循环的链表list<int> lt1;lt1.push_back(1);lt1.push_back(2);lt1.push_back(3);lt1.push_back(4);print_list(lt1);list<int> lt2(lt1);print_list(lt2);list<int> lt3;lt3.push_back(10);lt3.push_back(20);lt3.push_back(30);lt3.push_back(40);lt1 = lt3;print_list(lt1);
}

lt1创建了一个对象并向其中尾插书局,lt2拷贝构造lt1,lt3赋值给lt1

2.list的遍历

在vector和string中我们都可以通过[ ] + 下标遍历,但是在list中是不允许的,因为list底层是链表,不想数组是连续的,可以直接访问

1.迭代器遍历

	list<int>::iterator it = lt1.begin();while (it != lt1.end()){cout << *it << " ";++it;}cout << endl;

2.范围for遍历

for (auto ch : lt1)
{cout << ch << " ";
}
cout << endl;

3.迭代器类型

迭代器类型从方向可以分为正向,反向,从属性分为普通和const

list<int>::iterator it = lt1.begin();
while (it != lt1.end())
{cout << *it << " ";++it;
}
cout << endl;list<int>::reverse_iterator rit = lt1.rbegin();
while (rit != lt1.rend())
{cout << *rit << " ";++rit;
}
cout << endl;list<int>::const_iterator it = lt.begin();
while (it != lt.end())
{cout << *it << " ";++it;	
}
cout << endl;

4.list的头插头删和尾插尾删

void test_list2()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_front(0);lt.push_front(-1);print_list(lt);lt.pop_back();lt.pop_front();print_list(lt);
}

5.list任意位置的插入和删除

void test_list3()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_back(6);print_list(lt);list<int>::iterator pos = find(lt.begin(), lt.end(), 3);if (pos != lt.end()){lt.insert(pos, 30);lt.erase(pos);}print_list(lt);
}

6.list的sort()及reverse()

void test_list4()
{list<int> lt;lt.push_back(5);lt.push_back(8);lt.push_back(2);lt.push_back(6);lt.push_back(4);lt.sort();print_list(lt);lt.reverse();print_list(lt);
}

虽然可以通过sort直接排序,reverse逆序,但是平时并不经常使用,效率低

7.迭代器失效

当我们想要删除list中的偶数

void test_list5()
{list<int> lt;lt.push_back(3);lt.push_back(2);lt.push_back(1);lt.push_back(5);lt.push_back(4);lt.push_back(6);list<int>::iterator it = lt.begin();while(it!=lt.end()){if (*it % 2 == 0){lt.erase(it);++it;}}print_list(lt);
}

会发现程序崩溃

这是因为迭代器失效了,当我们删除的时候就要注意这一点

void test_list5()
{list<int> lt;lt.push_back(3);lt.push_back(2);lt.push_back(1);lt.push_back(5);lt.push_back(4);lt.push_back(6);list<int>::iterator it = lt.begin();while(it!=lt.end()){if (*it % 2 == 0){it = lt.erase(it);}else{++it;}}print_list(lt);
}

三.整体代码

#include<iostream>
#include<list>
using namespace std;void print_list(const list<int>& lt)
{list<int>::const_iterator it = lt.begin();while (it != lt.end()){cout << *it << " ";++it;}cout << endl;
}void test_list1()
{//带头双向循环的链表list<int> lt1;lt1.push_back(1);lt1.push_back(2);lt1.push_back(3);lt1.push_back(4);print_list(lt1);list<int>::iterator it = lt1.begin();while (it != lt1.end()){cout << *it << " ";++it;}cout << endl;for (auto ch : lt1){cout << ch << " ";}cout << endl;list<int>::reverse_iterator rit = lt1.rbegin();while (rit != lt1.rend()){cout << *rit << " ";++rit;}cout << endl;list<int> lt2(lt1);print_list(lt2);list<int> lt3;lt3.push_back(10);lt3.push_back(20);lt3.push_back(30);lt3.push_back(40);lt1 = lt3;print_list(lt1);
}void test_list2()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_front(0);lt.push_front(-1);print_list(lt);lt.pop_back();lt.pop_front();print_list(lt);
}void test_list3()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_back(6);print_list(lt);list<int>::iterator pos = find(lt.begin(), lt.end(), 3);if (pos != lt.end()){lt.insert(pos, 30);lt.erase(pos);}print_list(lt);
}void test_list4()
{list<int> lt;lt.push_back(5);lt.push_back(8);lt.push_back(2);lt.push_back(6);lt.push_back(4);lt.sort();print_list(lt);lt.reverse();print_list(lt);
}void test_list5()
{list<int> lt;lt.push_back(3);lt.push_back(2);lt.push_back(1);lt.push_back(5);lt.push_back(4);lt.push_back(6);list<int>::iterator it = lt.begin();while(it!=lt.end()){if (*it % 2 == 0){it = lt.erase(it);}else{++it;}}print_list(lt);
}int main()
{//test_list1();//test_list2();//test_list3();//test_list4();test_list5();
}

http://www.tj-hxxt.cn/news/1397.html

相关文章:

  • 福州综合网站建设免费进入b站2022年更新
  • 注重网站内容维护网页设计制作网站
  • 我想代理一个产品seo整站优化公司持续监控
  • 什么电脑做网站前段用百度竞价代理商
  • ae模板网站推荐汕头seo管理
  • 专业做pe的网站企业推广策划书
  • 太原网站建设主页网络销售怎么做才能有业务
  • 商城网站制作费用百度推广助手手机版
  • 网站建设 维护购销合同网站建设与营销经验
  • 上海网站建设 网页制作企业网络规划设计方案
  • 大发 wordpress ifanr谷歌推广seo
  • 招聘网站续费怎么做分录万网域名查询官网
  • 网站 数据库seo营销
  • 湖北省建设工程网站百度官方app免费下载
  • 网站建设陕icp青岛seo关键字排名
  • 邵阳市建设网站百度一下你就知道了 官网
  • 公司网站备案需要多久优化网站seo
  • 摄影网站模板源码成都最新疫情
  • 资源网站源码整站优化seo平台
  • 专做皮具的网站北京中文seo
  • 酒店微信网站建设新手做电商怎么起步
  • 深圳做网站排名公司优化设计电子版
  • ui设计好学吗?要学多久如何网站seo
  • 猪八戒网建设网站2500然后她叫我弄500.另外在给他2000百度官网网页版
  • 做网站如何盈利湖南企业竞价优化服务
  • 网站前期推广乔拓云网站注册
  • 开发公司出售没有规划内房屋徐州seo网站推广
  • 徐州网络推广公司百度关键词自然排名优化公司
  • 梅州市网站制作最成功的网络营销案例
  • 制作公司网站的费用seo引擎搜索