//list容器链表

//list容器链表 
//节点,数据域,指针域
//对任意位置快速插入和删除
//遍历元素没有vector快
//占用内存空间更大
//双向循环链表,prev指向下一个结点 
#include<iostream>
#include<list> 
#include<algorithm>
using namespace std;
void printlist(const list<int>&L){
for(list<int>::const_iterator it=L.begin();it!=L.end();it++){
    cout<<*it<<" ";
}
cout<<endl;
    return ;
}
void print(int a){
    cout<<a<<" ";
}    
void STLprintlist(const list<int>&L){

for_each(L.begin(),L.end(),print);
    
}
void print1(const list<char>&L){
    for(list<char>::const_iterator it=L.begin();it!=L.end();it++)
    cout<<*it<<" ";
    cout<<endl;
}
int main(){
//构造函数
list<int> L1;
for(int i=0;i<3;i++)
L1.push_back(10*(i+1));
list<int> L2(5,10);
list<int> L3(L2);
list<int> L4(L2.begin(),L2.end());
    printlist(L1);
    STLprintlist(L2);cout<<endl;    
        printlist(L3);
    STLprintlist(L4);    cout<<endl;
//赋值和交换
list<char> H3,H2,H1(8,'c'); 
H2=H1;
H3.assign(H1.begin(),H1.end());
H3.assign(5,'d');
//交换 
H3.swap(H1); 
cout<<"h3为 : "; 
print1(H3);

if(H3.empty()==0)
H3.resize(10,'m');//填充为空格 
cout<<"h3中元素的个数:"<<H3.size()<<endl;
H3.push_back('e');
H3.pop_back();
H3.push_front('a');
H3.pop_front();
list<char>::iterator p= H3.begin();
for(int i=0;i<3;i++)
p++;
p=H3.insert(p,'e');//前置++先加再用 ,后置++反之 
H3.insert(p,6,'r');
H3.insert(p,H1.begin(),H1.end()); 
H3.remove('r');//删除所有与r一样的元素 
    H3.erase(p);
//    H3.erase(H3.begin(),H3.end()) ;//相当于h3.clear() ;
cout<<"h3中元素的个数:"<<H3.size()<<endl;
print1(H3);
//数据存取
//list不支持at和【】
//迭代器只能前后移动,不支持跳跃访问

cout<<H3.front()<<endl;
cout<<H3.back()<<endl;
 
    return 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值