C++之list

C++之list


list的构造

复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器的构造函数
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //添加元素
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);

    //遍历打印输出
    printfList(L1);

    //区间构造
    list<int>L2(L1.begin(),L1.end());
    printfList(L2);

    //n个元素构造
    list<int>L3(4,100);
    printfList(L3);

    //拷贝构造
    list<int>L4(L2);
    printfList(L4);
}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}

list赋值和交换

复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器的赋值和交换
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //添加元素
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);
    //遍历打印输出
    printfList(L1);

    //赋值
    list<int>L2;
    L2 = L1;//operator =
    printfList(L2);

    list<int>L3;
    L3.assign(L2.begin(),L2.end());
    printfList(L3);

    list<int>L4;
    L4.assign(4,100);
    printfList(L4);

}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}
复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器的赋值和交换
void  test()
{
    cout<<"交换前"<<endl;
   //创建list容器
    list<int>L1;//默认构成

    //添加元素
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);
    //遍历打印输出
    printfList(L1);

    list<int>L4;
    L4.assign(4,100);
    printfList(L4);

    cout<<"交换后"<<endl;
    L1.swap(L4);
    printfList(L1);
    printfList(L4);
}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}

list的大小操作

复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //添加元素
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);
    //遍历打印输出
    printfList(L1);

    //判断是否为空
    if(L1.empty())
    {
        cout<<"L1 is empty"<<endl;
    }
    else
    {
        cout<<"L1 is not empty"<<endl;
        cout<<"L1's size is "<<L1.size()<<endl;
    }

    //重新指定大小
    L1.resize(10,100);
    printfList(L1);

    L1.resize(2);
    printfList(L1);
}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}

list插入和删除

复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //尾插
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);

    //头插
    L1.push_front(100);
    L1.push_front(200);
    L1.push_front(300);
    L1.push_front(400);
    //遍历打印输出
    printfList(L1);

    //尾删
    L1.pop_back();
    printfList(L1);
    //头删
    L1.pop_front();
    printfList(L1);

    //插入
    list<int>::iterator it=L1.begin();
    L1.insert(++it,1000);
    printfList(L1);

    //删除
    it = L1.begin();
    L1.erase(++it);
    printfList(L1);

    //移除
    L1.push_back(10000);
    L1.push_back(10000);
    L1.push_back(10000);
    L1.push_back(10000);
    printfList(L1);
    L1.remove(10000);
    printfList(L1);

    //清空
    L1.clear();
    printfList(L1);

}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}

list数据存取

复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
//list容器
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //尾插
    L1.push_back(10);
    L1.push_back(20);
    L1.push_back(30);
    L1.push_back(40);

    //遍历打印输出
    printfList(L1);

    cout<<"第一个元素为:"<<L1.front()<<endl;
    cout<<"最后一个元素:"<<L1.back()<<endl;

}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}

list反转和排序


复制代码
#include <iostream>
#include<list>
using namespace std;

//打印函数
void printfList(const list<int>&L)
{
    for(list<int>::const_iterator it = L.begin();it != L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}

bool MyCompare(int v1,int v2)
{
    //降序就是让第一个数大于第二个数 V1>V2
    return v1>v2;
}

//list容器
void  test()
{
   //创建list容器
    list<int>L1;//默认构成

    //尾插
    L1.push_back(50);
    L1.push_back(20);
    L1.push_back(10);
    L1.push_back(40);

    cout<<"反转前:"<<endl;

    //遍历打印输出
    printfList(L1);

    L1.reverse();

    cout<<"反转后:"<<endl;
    printfList(L1);

    //排序
    cout<<"排序前:"<<endl;
    printfList(L1);

    //所有不支持随机访问迭代器的容器,不可以用标准算法
    //不支持随机访问迭代器的容器,内部会提供对应一些算法
    //sort(L1. begin(), L1.end()) ;
    L1.sort();//默认是升序
    cout<<"排序后:"<<endl;
    printfList(L1);

    L1.sort(MyCompare);//降序
    cout<<"排序后:"<<endl;
    printfList(L1);

}

int main()
{
    test();
    cout << "Hello World!" << endl;
    return 0;
}
相关推荐
草莓熊Lotso22 分钟前
【数据结构初阶】--算法复杂度的深度解析
c语言·开发语言·数据结构·经验分享·笔记·其他·算法
KyollBM29 分钟前
【CF】Day75——CF (Div. 2) B (数学 + 贪心) + CF 882 (Div. 2) C (01Trie | 区间最大异或和)
c语言·c++·算法
海的诗篇_39 分钟前
前端开发面试题总结-JavaScript篇(二)
开发语言·前端·javascript·typescript
feiyangqingyun41 分钟前
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
c++·qt·udp·gb28181
CV点灯大师43 分钟前
C++算法训练营 Day10 栈与队列(1)
c++·redis·算法
cccc来财1 小时前
Go中的协程并发和并发panic处理
开发语言·后端·golang
狐凄1 小时前
Python实例题:Python计算线性代数
开发语言·python·线性代数
惊鸿一博2 小时前
java_网络服务相关_gateway_nacos_feign区别联系
java·开发语言·gateway
Bruce_Liuxiaowei2 小时前
深入理解PHP安全漏洞:文件包含与SSRF攻击全解析
开发语言·网络安全·php
成工小白2 小时前
【C++ 】智能指针:内存管理的 “自动导航仪”
开发语言·c++·智能指针