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);

posted @ 2020-11-22 23:21  云小道  阅读(278)  评论(0编辑  收藏  举报