C++学习笔记(十六):对vector进行更多的操作——泛型算法

本文介绍了C++中的泛型算法,特别针对vector进行详细讲解。内容包括只读算法如find、count和accumulate,写容器元素算法如fill、fill_n和replace,排序算法sort,以及删除相同数据的unique操作。这些算法极大地丰富了对vector的操作,提高编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先强调一下,这里的泛型算法实际不光光是对vector的操作,对于“顺序容器”均可以。

但是什么是顺序容器:

我们都知道,容器就是一些特定类型对象的集合。而顺序容器为程序员提供了控制元素存储和访问的能力。这种容器的一个显著的特征,就是容器中元素的顺序不依赖于元素的值,而是与加入容器时的位置有关。常见的顺序容器有vector、deque(双端队列)、list(双向链表)、forward_list(单向链表)、array(固定大小数组)、string。


了解了顺序容器,现在以vector为例,做下文的说明。

顺序容器本身只定义了很少的操作,这些操作我在前面的博客(点这里)也有写过。比如添加、删除元素,访问元素、获得迭代器等。但是现实中,我们用户肯定希望有更多的操作供自己使用,比如查找、替换、删除特定元素,重新排列元素等。为了实现上面的功能,程序员可能需要写一大段代码来将其实现。

为了解决这个问题,增加对于vector的操作种类,标准库给出了一组“泛型算法(generic algorithm)”。称其“算法”,是因为他们实现了一些经典算法的公共接口,比如排序、搜索。称其为“泛型”,是因为他们可以用于不同类型的元素和多种容器类型。

 

下面讲一下具体有哪些泛型算法。

大多数的算法都定义在头文

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值