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

广东佛山网站建设广告宣传方式有哪些

广东佛山网站建设,广告宣传方式有哪些,客服管理系统,展示型网站与营销型网站目录 一、list的介绍二、list的使用list的定义方式 三、list的插入和删除push_back和pop_backpush_front和pop_frontinserterase 四、list的迭代器使用五、list的元素获取六、list的大小控制七、list的操作函数sort和reversemergeremoveremove_ifuniqueassignswap 一、list的介…

目录

  • 一、list的介绍
  • 二、list的使用
    • list的定义方式
  • 三、list的插入和删除
    • push_back和pop_back
    • push_front和pop_front
    • insert
    • erase
  • 四、list的迭代器使用
  • 五、list的元素获取
  • 六、list的大小控制
  • 七、list的操作函数
    • sort和reverse
    • merge
    • remove
    • remove_if
    • unique
    • assign
    • swap


一、list的介绍

  1. list是一种可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。
  2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点当中,在结点中通过指针指向其前一个元素和后一个元素。
  3. list与forward_list非常相似,最主要的不同在于forward_list是单链表,只能进行单方向迭代。
    与其他容器相比,list通常在任意位置进行插入、删除元素的执行效率更高。
  4. list和forward_list最大的缺陷是不支持在任意位置的随机访问,其次,list还需要一些额外的空间,以保存每个结点之间的关联信息(对于存储的类型较小元素来说这可能是一个重要的因素)。

二、list的使用

list的定义方式

构造函数接口说明
list()构造空的list
list (size_type n, const value_type& val = value_type())构造的list中包含n个值为val的元素
list (const list& x)拷贝构造函数
list (InputIterator first, InputIterator last)用[first, last)区间中的元素构造list
void test_list()
{//构造int类型的空容器list<int> lt1;			// 构造一个含有n个val的某类型容器list<int> lt2(5, 2);//拷贝构造某类型容器list<int> lt3(lt2);//使用迭代器拷贝构造某一段内容string str("hello world");list<char> lt4(str.begin(), str.end());				//构造string对象某段区间的复制品//构造数组某段区间的复制品int arr[] = { 1, 2, 3, 4, 5 };list<int> lt5(arr, arr + sizeof(arr) / sizeof(int));
}

三、list的插入和删除

函数声明接口说明
push_back在list尾部插入值为val的元素
pop_back删除list中最后一个元素
push_front在list首元素前插入值为val的元素
pop_front删除list中第一个元素
insert在list position 位置中插入值为val的元素
erase删除list position位置的元素

push_back和pop_back

void test1_list()
{//push_back()和pop_back(),两种循环都可以list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);auto it = lt.begin();while (it != lt.end()){cout << *it << " ";			//1 2 3 4++it;}cout << endl;lt.pop_back();lt.pop_back();for (auto e : lt){cout << e << " ";			//1 2}cout << endl;
}

push_front和pop_front

void test2_list()
{//push_front和pop_front,通常用范围for方便一点list<int> lt1;lt1.push_front(1);lt1.push_front(2);lt1.push_front(3);for (auto e : lt1){cout << e << " ";			//3 2 1}cout << endl;lt1.pop_front();for (auto e : lt1){cout << e << " ";			//2 1}cout << endl;
}

insert

  1. 在指定迭代器位置插入一个数。
  2. 在指定迭代器位置插入n个值为val的数。
  3. 在指定迭代器位置插入一段迭代器区间(左闭右开)。
void test3_list()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);//5前插入17//v.insert(v.begin() + 5, 17);		//顺序表的话迭代器开头+5就可以插入auto it = lt.begin();				//链表,1.类似指针指到5前,2.插入for (size_t i = 0; i < 5; i++)		{++it;}lt.insert(it,17);					for (auto e : lt){cout << e << " ";				//1 2 3 4 5 17}cout << endl;//在指定的数前插入,例如在4前插入100,使用find找到该数it = find(lt.begin(), lt.end(), 4);if (it != lt.end()){lt.insert(it, 100);}for (auto e : lt){cout << e << " ";				//1 2 3 100 4 5 17}cout << endl;
}

find函数是头文件“algorithm”当中的一个函数,该函数在指定迭代器区间(左闭右开)寻找指定值的位置,并返回该位置的迭代器。

template<class InputIterator, class T>InputIterator find (InputIterator first, InputIterator last, const T& val)
{while (first!=last) {if (*first==val) return first;++first;}return last;
}

erase

list当中的erase函数支持两种删除方式:

  1. 删除指定迭代器位置的元素。
  2. 删除指定迭代器区间(左闭右开)的所有元素。
void test4_list()
{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);lt.push_back(7);auto it = find(lt.begin(), lt.end(), 3);lt.erase(it);								//删除3for (auto e : lt){cout << e << " ";						//1 2 4 5 6 7}cout << endl;it = find(lt.begin(), lt.end(), 5);lt.erase(it, lt.end());						//删除5后所有元素(左闭右开)for (auto e : lt){cout << e << " ";						//1 2 4}cout << endl;
}

四、list的迭代器使用

函数声明接口说明
begin + end返回第一个元素的迭代器+返回最后一个有效元素下一个位置的迭代器
rbegin + rend返回第一个元素的reverse_iterator,即end位置,返回最后一个有效元素下一个位置的reverse_iterator,即begin位置
void test5_list()
{//正向迭代器遍历容器list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);//list<int>::iterator it = lt.begin();auto it = lt.begin();while (it != lt.end()){cout << *it << " ";				//1 2 3 4++it;}cout << endl;//反向迭代器遍历容器list<int> lt1;lt1.push_back(1);lt1.push_back(2);lt1.push_back(3);lt1.push_back(4);auto rit = lt1.rbegin();while (rit != lt1.rend()){cout << *rit << " ";			//4 3 2 1++rit;}cout << endl;
}

五、list的元素获取

函数声明接口说明
front返回list的第一个节点中值的引用
back返回list的最后一个节点中值的引用
void test6_list()
{list<int> lt;lt.push_back(0);lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);cout << lt.front() << endl;		//0cout << lt.back() << endl;		//4
}

六、list的大小控制

函数声明接口说明
size返回list中有效节点的个
resize1.当所给值大于当前的size时,将size扩大到该值,扩大的数据为第二个所给值,若未给出,则默认为容器所存储类型的默认构造函数所构造出来的值。2.当所给值小于当前的size时,将size缩小到该值。
empty检测list是否为空,是返回true,否则返回false
clear清空list中的有效元素
void test7_list()
{//size获取当前容器当中的元素个数list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);cout << lt.size() << endl;			//4//resize扩容(可赋值)或缩容list<int> lt1(5, 2);for (auto e : lt1){cout << e << " ";				//2 2 2 2 2}cout << endl;lt1.resize(8, 5);					//将size扩大为8,扩大的值为5for (auto e : lt1){cout << e << " ";				//2 2 2 2 2 5 5 5}cout << endl;lt1.resize(3);						//将size缩小为3for (auto e : lt1){cout << e << " ";				//2 2 2}cout << endl;//empty判断是否为空,没元素返回1,有元素返回0list<int> lt2;cout << lt2.empty() << endl;		//1cout << lt1.empty() << endl;		//0//clear清空容器(size元素)list<int> lt4(5, 2);for (auto e : lt4){cout << e << " ";				//2 2 2 2 2}cout << endl;						cout << lt4.size() << endl;			//5lt.clear();							//清空容器for (auto e : lt){cout << e << " ";				//(无数据)}cout << endl;								cout << lt.size() << endl;			//0
}

七、list的操作函数

函数声明接口说明
sort将容器当中的数据默认排为升序
reverse将容器当中元素的位置进行逆置
splice用于两个list容器之间的拼接
remove用于删除容器当中特定值的元素
remove_if用于删除容器当中满足条件的元素
unique用于删除容器当中连续的重复元素
merge将一个有序list容器合并到另一个有序list容器当中,使得合并后的list容器任然有序。(类似于归并排序)
assign将新内容分配给容器,替换其当前内容
swap交换两个容器的内容

sort和reverse

void test8_list()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(10);lt.push_back(20);for (auto e : lt){cout << e << " ";					//1 2 3 4 10 20}cout << endl;lt.reverse();for (auto e : lt){cout << e << " ";					//20 10 4 3 2 1}cout << endl;
}

merge

merge函数用于将一个有序list容器合并到另一个有序list容器当中,使得合并后的list容器任然有序。(类似于归并排序)

void test10_list()
{list<int> lt;lt.push_back(17);lt.push_back(55);lt.push_back(32);list<int> lt1;lt1.push_back(11);lt1.push_back(3);lt1.push_back(100);lt.sort();lt1.sort();lt.merge(lt1);						//将lt1合并到ltfor (auto e : lt){cout << e << " ";				//3 11 17 32 55 100}cout << endl;
}

remove

remove函数用于删除容器当中特定值的元素。

void test9_list()
{int arr[] = { 12,65,32,11,22,11,3 };list<int> mylist(arr, arr + sizeof(arr) / sizeof(int));mylist.remove(11);for (auto e : mylist){cout << e << " ";				//12 65 32 22 3}cout << endl;
}

remove_if

remove_if函数用于删除容器当中满足条件的元素

bool single_digit(const int& val)
{return val < 10;
}
void test11_list()
{list<int> lt;lt.push_back(3);lt.push_back(2);lt.push_back(65);lt.push_back(33);lt.push_back(9);lt.push_back(5);lt.push_back(4);for (auto e : lt){cout << e << " ";}cout << endl;							//3 2 65 33 9 5 4lt.remove_if(single_digit);				//删除容器当中值小于10的元素for (auto e : lt){cout << e << " ";}cout << endl;							//65 33
}

unique

unique函数用于删除容器当中连续的重复元素。

void test12_list()
{list<int> lt;lt.push_back(2);lt.push_back(3);lt.push_back(3);lt.push_back(2);lt.push_back(1);lt.push_back(3);lt.push_back(3);for (auto e : lt){cout << e << " ";}cout << endl;			//2 3 3 2 1 3 3lt.sort();				lt.unique();			//删除容器当中连续的重复元素for (auto e : lt){cout << e << " ";}cout << endl;			//1 2 3 
}

assign

assign函数用于将新内容分配给容器,替换其当前内容,新内容的赋予方式有两种:

  1. 将n个值为val的数据分配给容器。
  2. 将所给迭代器区间当中的内容分配给容器。
void test13_list()
{list<char> lt(3, 's');lt.assign(4, 'a');						//将新内容分配给容器,替换其当前内容for (auto e : lt){cout << e << " ";					//a a a a}cout << endl;string str("hello word");lt.assign(str.begin(), str.end());		//将新内容分配给容器,替换其当前内容for (auto e : lt){cout << e << " ";					//h e l l o   w o r d}cout << endl;
}

swap

void test14_list()
{list<int> lt1(5, 2);list<int> lt2(2, 6);lt1.swap(lt2);				 //交换两个容器的内容for (auto e : lt1){cout << e << " ";}cout << endl;				//6 6for (auto e : lt2){cout << e << " ";}cout << endl;				//2 2 2 2 2
}

文章转载自:
http://halogenoid.pwrb.cn
http://quibble.pwrb.cn
http://incongruous.pwrb.cn
http://marish.pwrb.cn
http://wrans.pwrb.cn
http://artlessness.pwrb.cn
http://sylva.pwrb.cn
http://genette.pwrb.cn
http://amphoteric.pwrb.cn
http://huffy.pwrb.cn
http://synactic.pwrb.cn
http://dactylic.pwrb.cn
http://disability.pwrb.cn
http://chaldaea.pwrb.cn
http://lappic.pwrb.cn
http://garnish.pwrb.cn
http://begat.pwrb.cn
http://alexandrine.pwrb.cn
http://exorable.pwrb.cn
http://panoramist.pwrb.cn
http://tremble.pwrb.cn
http://masterdom.pwrb.cn
http://stithy.pwrb.cn
http://tracheole.pwrb.cn
http://addlepate.pwrb.cn
http://legible.pwrb.cn
http://papery.pwrb.cn
http://preserver.pwrb.cn
http://simitar.pwrb.cn
http://tannish.pwrb.cn
http://breasthook.pwrb.cn
http://handkerchief.pwrb.cn
http://jurisprudential.pwrb.cn
http://krooboy.pwrb.cn
http://gaw.pwrb.cn
http://destination.pwrb.cn
http://banking.pwrb.cn
http://yellowhammer.pwrb.cn
http://semistagnation.pwrb.cn
http://ludic.pwrb.cn
http://garbage.pwrb.cn
http://fusain.pwrb.cn
http://philologue.pwrb.cn
http://vouchsafe.pwrb.cn
http://sternness.pwrb.cn
http://cagm.pwrb.cn
http://predetermine.pwrb.cn
http://rampion.pwrb.cn
http://unhealthiness.pwrb.cn
http://overdelicate.pwrb.cn
http://safranine.pwrb.cn
http://featheredged.pwrb.cn
http://dualpurpose.pwrb.cn
http://odontophorous.pwrb.cn
http://ascorbate.pwrb.cn
http://drawgear.pwrb.cn
http://sonicguide.pwrb.cn
http://solving.pwrb.cn
http://soliloquise.pwrb.cn
http://cims.pwrb.cn
http://kaliph.pwrb.cn
http://kilovar.pwrb.cn
http://evince.pwrb.cn
http://saratogian.pwrb.cn
http://sundress.pwrb.cn
http://norma.pwrb.cn
http://kami.pwrb.cn
http://dahoman.pwrb.cn
http://chagal.pwrb.cn
http://recept.pwrb.cn
http://arcuate.pwrb.cn
http://wheelchair.pwrb.cn
http://protolanguage.pwrb.cn
http://cardiogenic.pwrb.cn
http://oxter.pwrb.cn
http://tressure.pwrb.cn
http://mimeo.pwrb.cn
http://trunks.pwrb.cn
http://benefactive.pwrb.cn
http://elasticity.pwrb.cn
http://drawspring.pwrb.cn
http://counterviolence.pwrb.cn
http://mesial.pwrb.cn
http://deal.pwrb.cn
http://piteous.pwrb.cn
http://laocoon.pwrb.cn
http://photodegradable.pwrb.cn
http://roentgenolucent.pwrb.cn
http://junk.pwrb.cn
http://postimpressionism.pwrb.cn
http://centralism.pwrb.cn
http://workwoman.pwrb.cn
http://fulvous.pwrb.cn
http://lindy.pwrb.cn
http://cuspidate.pwrb.cn
http://preparative.pwrb.cn
http://kvass.pwrb.cn
http://gasser.pwrb.cn
http://pyorrhoea.pwrb.cn
http://catastrophe.pwrb.cn
http://www.dt0577.cn/news/125541.html

相关文章:

  • 公司网站费用怎么做会计分录青岛网站关键词排名优化
  • 动态网站建设实训周实训心得百度一下首页百度
  • 百度登录电脑系统优化软件
  • 网站文章图片如何跳转小红书关键词热度查询
  • 网站控制面板地址小程序开发软件
  • 网站开源代码模版站长工具seo推广 站长工具查询
  • 潍坊网站建设500吉林网络公司
  • 长沙网站制作推广互联网营销策划是做什么的
  • 江门网站制作网站购物网站页面设计
  • 怎么做国际网站搜索引擎营销的基本方法
  • 汕头市人民政府门户网站最有效的线上推广方式
  • 杭州本地网站有哪些排名优化是怎么做的
  • 上海公安网站备案报个电脑培训班要多少钱
  • 东莞网站建设0086seo网站技术培训
  • 丰富政府网站功能免费推广产品的平台
  • 重庆网站建设的意义网站推广互联网推广
  • 推广网站文案素材国外网页模板
  • 服务器托管哪家好百度seo灰色词排名代发
  • 临朐县网站建设seo包括什么
  • 做网站域名自己弄seo外链招聘
  • 电话推销网站建设注册商标查询官网入口
  • 专门做网站关键词排名网站优化外包找谁
  • 六数字域名做网站好不好网络营销管理办法
  • 研发外包公司优化王
  • 如何修改wordpress模板首页宽度seo网站内容优化有哪些
  • wordpress不加载样式东莞百度seo哪里强
  • 河北网站备案查询系统网络营销策划方案格式
  • 网站建设定金合同范本谷歌搜索优化seo
  • 昌平网站开发多少钱关键词排名优化软件
  • wordpress 3.2 漏洞桂平seo快速优化软件