欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 14-6-3C++STL的list

14-6-3C++STL的list

2025/9/18 7:36:27 来源:https://blog.csdn.net/2402_86622585/article/details/145358340  浏览:    关键词: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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词