C++ 之list用法

本文详细介绍了C++中list的使用,包括定义与初始化、赋值、获取长度、改变大小、链表访问、插入与删除元素、交换与反转操作、排序以及清除和空判断等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 list 时,需包含有文件< list>
.

一、定义及初始化

// 默认构造函数,长度为0
 list<int> lis1;
 
 // 定长构造函数及初始值
 list<int> lis2(50);
 list<int> lis3(50,1);
 
 // 复制构造函数
 list<int> lis4(lis3);
 list<int> lis5(lis3.begin(),lis3.end());

二、赋值(assign)

// 将 list中元素变为n个val。
list.assign(n,val)

// 将list2中的从list2.begin()到list2.end()之间的数值赋值给list1。
list1.assign(list2.begin(),list2.end())

三、获取长度(size)

// 获取list长度
list.size();

四、改变大小(resize)

// 将list长度改为只容纳n个元素,超出部分删除
list.resize(n);

// 将list长度改为只容纳n个元素,并赋初值val,超出部分删除
list.resize(n,val)

五、链表访问

// 通过迭代器访问链表
for(list<int>::iterator iter = list.begin(); iter != list.end(); iter++){
    cout << *iter; 
}

六、插入元素(push_front、push_back、insert)

// 在list首部插入
list.push_front();

// 在list尾部插入
list.push_back();

// 在list的开始位置插入10。
list.insert(list.begin(),10); 

// 在list的开始位置插入2个20。
list.insert(list.begin(),2,20); 

// 在list1的开始位置插入list2的从开始到结束的所有位置的元素
list1.insert(list1.begin(),list2.begin(),list2.end());

七、删除元素(pop_front、pop_back、erase)

// 删除list首部
list.pop_front();

// 删除list尾部
list.pop_back();

// 将list的第一个元素删除。
list.erase(list.begin()); 

// 将list的从begin()到end()之间的元素删除。
list.erase(list.begin(),list.end());

// 原理是依次将非删去元素复制到前面,建议使用自带函数
remove(v.begin(), v.end(), 5);
list.remove(5)

八、交换、反转、合并(swap、reverse、merge)

// 交换两个链表的元素
swap(list1, list2)

// 反转链表中的元素
reverse(list.begin(), list.end());
   
// 合并两个链表元素并排序
list1.merge(list2,greater<int>());

九、排序(sort)

// 默认情况下升序排列
sort(list.begin(), list.end()); 

// 可自定义排序方式(此为降序)
bool Comp(const int &a, const int &b){
	return a>b;
}
sort(list.begin(), list.end(), Comp);

// 亦可函数内部自定义 
sort(list.begin(), list.end(), [](int &a, int &b){return a>b;});  

十、清除和空判断(clear、empty)

// 清除链表中的数据
list.clear();

// 判断链表是否为空
list.empty();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值