首页 > 编程知识 正文

C 中使用STL list 和find函数,left函数与find函数一起使用

时间:2023-05-05 16:20:20 阅读:214718 作者:660

首先find的作用:在具有指定值的范围内找到元素首次出现的位置。

template<class InputIterator, class Type>
InputIterator find(
InputIterator _First, //一个输入迭代器,它在要搜索指定值的范围内寻址第一个元素的位置。
InputIterator _Last, //一个输入迭代器,用于在要搜索的指定值范围内的最后一个元素之后的位置进行寻址。
const Type& _Val//要搜索的值。
);

返回值:一个输入迭代器,用于寻址在搜索范围内首次出现的指定值。 如果范围中不存在此类值,则返回的迭代器将寻址范围的最后位置,即最后一个元素之后的位置。

使用前需要引入头文件#include <algorithm>

如:
#include<algorithm>
#include<list>

list lst;

list< int>::iterator itePos = ::find(lst.begin(),lst.end(),5);//寻找值为5的元素位置。

STL list 是一个双向链表,迭代器具备前移和后移的能力
1.以下操作同vector
List< int> list;
Ilist.push_back(0);
Ilist.begin();
Ilist.end();
Ilist.insert();
Ilist.erase();
Ilist.clear();
2.以下为list 的特有操作
(1)Void push_front(const T &x); //插入一个结点,作为头结点
(2)Void push_back(const T &x); //插入一个结点,作为尾结点
(3)Void pop_front(); //移除头结点
(4)Void pop_back(); //移除尾结点
(5)Void remove(const T&value); //将数值为value的所有元素移除
(6)Void unique(); //将“连续而相同的元素”移除只剩一个
(7)Void splice(iterator position, list &x); //将x 结合于position所指位置之前。X 必须不同于*this

(8)Void splice(iterator position, list&, iterator i); //将i所指的元素结合于position所指位置之前。Position 和 i 可指向同一个list
(9)Void splice(iterator position, list&, iterator first, iterator lsat); //将[first, last)内的所有元素结合于 position 所指的位置之前,position和[first, last)可指向同一个list,但是position 不能位于[first, last)之内。
(10)void merge(list& x); //将x合并到*this 身上。两个lists 的内容都必须先经过递增排序。

(11)void reverse(); //将*this 的内容逆向重置
(12)void sort(); //将list 的元素进行升序排序

我们结合find函数进行指定位置的添加和删除
list< int>::iterator itePos = ::find(lst.begin(),lst.end(),5);//在list中寻找值为5的元素位置。
lst.insert(itePos,100);//默认在元素5的前面插入100.

list< int>::iterator itePos = ::find(lst.begin(),lst.end(),1);//在list中寻找值为1的元素位置。
itePos = lst.erase(itePos);//删除元素1,并返回元素1的下一个元素位置。注:迭代器被删除后需要重新赋值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。