C++ STL 库 list 链表的基本定义及操作

list
双向链表
  • 比单向链表多了个指向前方向的指针
  • 与vector的区别:
    vector: 是一个数组
    (1)支持快速随机访问,即下标运算
    (2)尾添加,不申请空间的情况下非常快
    (3)插入和删除比较慢
    list: 是一个链表
    (1)随机访问慢,也支持下标
    (2)支持快速插入删除
头文件
#include <list>
using namespace std;
定义list的对象
	list<结构体> lb;
	list<int> lb;
	list<double> lb;
构造函数

五种构造函数:

struct Node{
    //定义结构体 
	int a;
	char c;
};
 
void fun(Node& d){
      //输出函数 
	cout << d.a << " " << d.c << "\n";  // \n换行比endl效率高点 
}
 
void Haha(){
     //初始值为 0 
	list<Node> lb; //无参构造,其中没有元素 
	list<Node> lb1(5); //有五个元素,初始为 0 
	for_each(lb1.begin(), lb1.end(), fun);  //迭代器输出 
}

void Haha1(){
     //初始化特定值 
	Node no = {
   7, 'a'};  
	list<Node> lb(3, no);  //','前表示一共多少个值,','后表示值是多少 
	list<Node> lb1(lb);  //用一个list来初始化当前的list 
	list<Node> lb2(lb.begin(), lb.end());  //用另一个对象中的一段来初始化当前list 
	for_each(lb.begin(), lb.end(), fun);  //输出 
	for_each(lb1.begin(), lb1.end(), fun);  //输出 
	for_each(lb2.begin(), lb2.end(), fun);
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值