顺序容器vector、list、deque(整理中)

本文详细介绍了C++标准库中的三种顺序容器:vector、list和deque的特点及使用方法,包括初始化、元素添加、访问和删除等操作,并对比了它们之间的区别。

vector: 向量容器,使用线性存储结构,

list: 双向链表容器,
deque: 双端队列容器,

1.对容器vector,list,deque进行自增操作是需要注意的问题:
    list,deque可以直接对begin(),end()进行++或者--操作,但是vector不行;

int a[ ] = {1,2,3,4,5};
vector<int> ivec(a,a+5);

cout << *(ivec.begin()++) << endl; //错误:ivec.begin()++,++ivec.begin(),

                                                             //iivec.end()--,--ivec.end()操作都不正确


list<int> lis(a,a+5);

cout << *(++lis.begin()) << endl;  //上述操作都可以


deque<int> ide;
for(int i=0; i!=5;++i)
de.push_back(a[i]);

cout << ide.front() << '\t' << *++ide.begin() << endl;
cout << ide.back () << '\t' << *--ide.end()<< endl;    //上述操作都可以


2. vector ,list ,deque初始化时,type<T>  c(b,e),创建容器c,其元素是迭代器b和e标示的范围内元素的副本。

      指针不是迭代器,所以会出现上述对list和vector可以用数组初始化,相当于运用指针;但是对deque不行。


3.往容器中添加元素的操作:c.push_back(t), c.push_front(t)  ,c.insert(p,t) , c.insert(p, n ,t), c.insert(p,b,e)

   // t 为元素,p,b,e为迭代器,n表示个数,

     其中 c.push_front(t)只适用于list和deque.(这两种都是双向容器)


5.访问顺序容器内的元素的操作:c.back() , c.front() , c[n] , c.at(n);  

    其中 c[n] , c.at(n)只适用于vector和deque


6.删除顺序容器内元素的操作:c.erase(p), c.erase(b,e), c.clear() ,  c.pop_back() (删除最后一个元素), c.pop_front()(删除第一个元素)

  其中c.pop_front() 只适用于list 或 deque 容器。

   注意:c.erase(b,e),此处删除的是从迭代器b开始 到 迭代器e-1的元素


注意:c.erase(p)返回的迭代器是指向删除元素后边的元素,所以在应用时一定要注意,下方程序为删除vector<int> iVec

中的偶数,没有红色部分的操作则很可能会报错

for ( iterV = iVec.begin();iterV != iVec.end();++iterV )
if ( *iterV%2==0 )
{
iterV = iVec.erase(iterV);
if ( iterV != iVec.begin() )
--iterV;
else
continue;

}


7.关于迭代器运算

例如type<int>::iterator iter = velue.begin(),//iter表示迭代器

*iter; iter->men; ++iter;--iter; iter++;iter--;iter1 == iter2;iter1 != iter2; 这些操作对于vector,list,deque都可以

注意:vector 和deque容器的迭代器提供的额外运算,以下操作不可用于list

      iter+n; iter-n;

      iter 1+= iter2;iter1 -= iter2;iter1-iter2;

      iter1 > iter2;  iter1 < iter2;  iter1 >= iter2;  iter1 >= iter2; 



源码来自:https://pan.quark.cn/s/41b9d28f0d6d 在信息技术领域中,jQuery作为一个广受欢迎的JavaScript框架,显著简化了诸多操作,包括对HTML文档的遍历、事件的管理、动画的设计以及Ajax通信等。 本篇文档将深入阐释如何运用jQuery达成一个图片自动播放的功能,这种效果常用于网站的轮播展示或幻灯片演示,有助于优化用户与页面的互动,使网页呈现更加动态的视觉体验。 为了有效实施这一功能,首先需掌握jQuery的核心操作。 通过$符号作为接口,jQuery能够迅速选取DOM组件,例如$("#id")用于选取具有特定ID的元素,而$(".class")则能选取所有应用了某类class的元素。 在选定元素之后,可以执行多种行为,诸如事件监听、样式的变更、内容的更新以及动画的制作等。 关于“一个基于jQuery的图片自动播放功能”,首要任务是准备一组图片素材,这些素材将被整合至一个容器元素之中。 例如,可以构建一个div元素,将其宽度设定为单张图片的尺寸,再借助CSS实现溢出内容的隐藏,从而构建出水平滚动的初始框架。 ```html<div id="slider"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <!-- 更多图片内容... --></div>```接着,需要编写jQuery脚本以实现图片的自动切换。 这通常涉及到定时器的运用,以设定周期性间隔自动更换当前显示的图片。 通过使用`.fadeOut()`和`.fadeIn()`方法,能够实现图片间的平滑过渡,增强视觉效果。 ```javascript$(document).re...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值