首页 资讯 > 正文

环球消息!C++ 特定容器算法

2023-05-04 20:58:42 来源:哔哩哔哩


(资料图片仅供参考)

和其他容器不同,list和forward_list定义了几个成员函数形式的算法。

通用版本的sort要求随机访问迭代器,所以不能用于list和forward_list,但是我们可以用独有的sort函数,merge、remove、reverse也是如此。

链表类型定义的其他算法的通用版本可以用于链表,但代价太高,这些算法需要交换输入序列中的元素,一个链表可以通过改变元素间的链接而不是真的交换他们的值来快速“交换”元素。因此,这些链表版本的算法的性能比对应的通用版本好得多。

splice成员

链表类型还定义了splice算法

链表特有的操作会改变容器

多数链表特有的算法都和其通用版本很相似,但不完全相同。链表特有版本与通用版本间的一个至关重要的区别就是链表版本会改变底层容器。例如,remove的链表版本会删除指定的元素,unique的链表版本会删除第二个和后继的重复元素。

类似的,merge和splice会销毁其参数。例如,通用版本的merge将合并的序列写道一个给定的目的迭代器;两个输入序列是不变的。而链表版本的merge函数会销毁给定的链表——元素从参数指定的链表中删除,被合并到调用merge的链表对象中。在merge之后,来自两个链表中的元素依然存在,但是他们已经在同一个链表中。

关键词:

责任编辑:宋璟

返回首页
相关新闻
返回顶部