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;
}
相关推荐
stolentime2 分钟前
(有原题)CSP-S2026第一轮试题(附答案解析、markdown源码)
c++·csp
Ivanqhz10 分钟前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
m0_7345717614 分钟前
深入理解C++ RAII
开发语言·c++
泡海椒17 分钟前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
aramae26 分钟前
模拟实现memset()(C语言)
c语言·开发语言·后端
hetao173383736 分钟前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk5551 小时前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
stolentime1 小时前
CSP-J2026第一轮试题(附答案解析、markdown源码)
c++·csp
船厂电气自动化ai大模型1 小时前
AI大模型与数学|第81天 课程:正交向量、正交基、格拉姆‑施密特(Gram‑Schmidt)正交化
开发语言·数据结构·人工智能·线性代数·机器学习
Rabitebla1 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法