2021-10-26

本文深入探讨了C++中顺序容器如vector、array和string在使用swap操作时的行为差异,强调了迭代器在swap后的有效性问题。同时,讲解了关系运算符在比较容器时的规则,并通过示例展示了在数组中使用find算法的过程。了解这些基础知识对于提升C++编程效率至关重要。
摘要由CSDN通过智能技术生成

顺序容器

swap

使用swap对除了array以外的容器进行元素调换很快,因为其元素本身并无变动,只是改变了容器的内部数据结构。元素无变动就意味着,在swap前迭代器所指向的元素不会失效,只是其指向的容器变了,例如swap(a,b),交换之前指向a[3]的迭代器在交换后会指向b[3]

使用swap交换array容器时,会真正交换他们的元素,所以交换前指向a[3]的迭代器交换后依然指向a[3],只是其指向的值变了

而对string进行swap后,其迭代器、引用、指针都会失效

关系运算符

当两容器的大小相同,所包含的元素也都相同,则两容器相等

当两容器大小不同,但小容器的元素都按顺序等于大容器中的元素,则小容器较小

当两容器大小不同,元素不同,则他们的大小取决于第一个不相等的元素的大小

vector<int> a={1,2,3,4},b={1,2,4};		//b>a

泛型算法

在数组中使用find

通常在对容器使用find的时候,是使用容器名.begin()、容器名.end()函数返回指向他们头尾的迭代器,对数组进行find时可以使用:

int a[]={1,2,3};
find(begin(a),end(a),3);

begin(a)返回的是指向a头的指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值