list迭代器
list链表的使用
可以进行前后互相关联
forward_lst只能往前链接
形式:
list<int> lst;
或者
struct Node{
int a;
char b;
double d;}
//无参形式
list<Node>lst1();
有一个参数形式
list<Node>lst2(5);
void fun(Node& c){
cout<<c.a<<" "<<<int>c.b;
}
for_each(lst2.begin(),lst2.end(),fun);
有两个参数形式:
void fun(Node& c){
cout<<c.a<<" "<<<c.b;
}
Node n={10,"a"};
list<Node>list3(5,n);
for)each(list3.begin(),list3.end(),fun);
迭代器方法
struct Node{int a,char c}
void fun(Node& b){cout<<b.a<<" "<<endl;
list<Node>list(6,"a");
list <Node>::iterator ite=list.begin();
for_each(ite,list.end(),fun);
输出&添加//
void ListDefine(){
Node no{6,a};
for_each(ls.begin(),ls.end(),fun);
//头添加
ls.push.front(Node(12,'a'));
//尾添加
ls.push.back(Node(14,'c'));
//中间位置插入一个元素
ls.insert(iteator ,Node(14,'d'));
}
删除
ls.pop_front();
ls.pop_back();
迭代器
list<Node>::iteator it =ls.begin();
ls.erase(it,Node(12,'a'));
删除
ls.clear();
删除整个链表里面的元素
ls.remove();
改
ls.front();
ls.back();
list<node>ls;
//重新赋值
ls.assgin(3,node(4,'a');
swap
list<node>::iterator it=list.swap(ls);
ls1.swap(ls);
srot
list1.srot(ls);
ls.merge(ls1);
查找find
list <Node>::iterator ite=find(ls.begin(),ls.end(),Node(14,'s'));
----------------------------------------------------------------------------------------
迭代器
迭代器可以帮助人更快的对程序进行编写
常见的有string、vector、list
string用法
void testiterator(){
string str("abc");
string str1("defg");
//添加
str.append(str.begin(),str.end(),str()+4);
//删除
str.erase(str.end(4));
//插入
str.inster(str.begin(6),3,'N');
//查看
str.m_str();
//遍历
void fun(char c){
cout<<c<<endl;
}
str_sort(str.begin(),str.end());//默认从小到大
for_each(str.begin(),str.end(),fun)
}
vector用法
vector<int>ve(4);
vector<char>ve1(5);
for(int i=0;i<5;i++)
cout<<v1[i]<<endl;
//迭代器
vector<int>::iterator it =ve.begin();
vector<char>::iterator it1=ve1.end();
for(int i;i<5;i++)
cout<<ve1[i]<<endl;
//增加
vec.push_back(1);
//插入
vec.inster(vec.end()+2,5,'a');
//删除
vec.erase(ve1.begin()+5);
//排序
vec_sort(vec.begin(),vec.end(),greater<int>());
for_each(vec.begin(),vec.end(),fun);
list
//显示
cout<<list.begin();
//插入
list.inster(list.begin()+4,13,'a');
list.push_back(Node(12,'a'));
list.push_front(Node(13,'b'));
//删除
list<Node>::itetator it=list.begin();
it.erase(list.begin()+5);
//尾删除
list.pop_back(Node(12,5));
//头删除
list.pop_front(Node(12,6));
//swap
list.swap(list1);