当前位置: 首页 > article >正文

14-6-3C++STL的list

(一)list的插入

1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int> lst;
    lst.push_back(10);
    lst.push_back(30); 
    lst.push_back(40);
    list<int>::iterator it;
    it=lst.begin() ;
    it++;
    lst.insert(it,20);
    for(it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int> lst;
    lst.push_back(10);
    lst.push_back(30); 
    lst.push_back(50);
    list<int>::iterator it;
    for(it=lst.begin();it!=lst.end();it++)
    {
        if(*it==50)
        break;
    }
    if(it!=lst.end())
    {
        lst.insert(it,40);
    }
        for(it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

2.list.insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    list<int>::iterator it = lst.end();
    lst.insert(it, 3, 70);
    for(it = lst.begin(); it != lst.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

3.list.insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst, lst1;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    lst1.push_back(20);
    lst1.push_back(40);
    list<int>::iterator it;
    for(it = lst.begin(); it != lst.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;
    lst.insert(lst.end(), lst1.begin(), lst1.end());

    for(it = lst.begin(); it != lst.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}


(二)list的删除

1.list.clear(); //移除容器的所有数据

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst, lst1;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    lst.push_back(70);
    lst.push_back(90);
    lst.push_back(110);
    lst.push_back(110);
    lst.push_back(110);
    list<int>::iterator it;
    lst.clear();
    cout<<"empty?="<<lst.empty() <<endl;
     
    return 0;
}

2.list.erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置,list.erase(pos);//删除pos位置的数据,返回下一个数据的位置

 #include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst, lst1;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    list<int>::iterator it;
    it=lst.begin() ;
    it++;
    it++; 
    lst.erase(it);
    for(it = lst.begin(); it != lst.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}

3.Ist.remove(elem)://删除容器中所有与elem值匹配的元素

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst, lst1;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    lst.push_back(70);
    lst.push_back(90);
    lst.push_back(110);
    lst.push_back(110);
    lst.push_back(110);
    list<int>::iterator it;
    lst.remove(110);
    for(it = lst.begin(); it != lst.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}


(三)list的反转

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> lst, lst1;
    lst.push_back(10);
    lst.push_back(30);
    lst.push_back(50);
    lst.push_back(70);
    lst.push_back(90);
    lst.push_back(110);
    list<int>::iterator it;
    lst.reverse() ;
    for(it=lst.begin() ;it!=lst.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}


http://www.kler.cn/a/519547.html

相关文章:

  • MySQL数据库笔记——版本号机制和CAS(Compare And Swap)
  • 数据结构——二叉树——堆(1)
  • Redis 的热 Key(Hot Key)问题及解决方法
  • Android - 通过Logcat Manager简单获取Android手机的Log
  • 【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性
  • golang网络编程
  • 如何使用群晖NAS配置MySQL与phpMyAdmin远程管理
  • 商业航天更青睐哪些芯片
  • 网易Android开发面试题200道及参考答案 (下)
  • 长短期记忆网络LSTM
  • python爬虫入门(一) - requests库与re库,一个简单的爬虫程序
  • Kubernetes可视化界面
  • three.js+WebGL踩坑经验合集(3):THREE.Line的射线检测问题(不是阈值方面的,也不是难选中的问题)
  • IDEA2020同时使用SVN和GIT
  • DBO优化GRNN回归预测matlab
  • Altium Designer脚本开发不支持功能集锦
  • 接口(完)
  • 快速更改WampServer根目录php脚本
  • 如何写美赛(MCM/ICM)论文中的Summary部分
  • kafka-保姆级配置说明(consumer)
  • 【算法】递归型枚举与回溯剪枝初识
  • 基于Django的就业系统的设计与实现
  • 使用python gitlab包来实现更新gitlab wiki page
  • 25.日常算法
  • Linux查看服务器的内外网地址
  • 【Linux网络编程】数据链路层--以太网协议