浅识c++中list的front,back,begin,end的区别

在学习list时候了解到一个东西叫做迭代器(interator),它在容器中的作用有点类似于指针是容器和操纵容器的算法之间的中介,迭代器可以指向容器中的某一个元素,通过迭代器可以读取其指向的元素,那么由此开始进入本文的中心,front是返回list中的第一个元素,back是返回list中的最后一个元素如下代码:

list<int>a;
	for(int i=0;i<20;i++)
	{
		a.insert(a.end(),i);
	}
cout<<"front=" <<a.front()<<endl;
cout<<"back="<<a.front()<<endl;

很明显跑出的结果为front=0,back=19;

然而begin和end分别指的是返回一个指向第一个元素的迭代器和指向最末尾的迭代器

值得注意的是这里的末尾并不是最后一个元素而是最后一个后面的一个所以想要打出最后一个元素需要进行--操作

因为返回的是迭代器而不是元素所以这时候用如下代码无法运行:
 

cout<<"begin=" <<a.begin()<<endl;
cout<<"end="<<a.end()<<endl;

所以我们应当定义两个迭代器来接受返回的数据然后再将其输出:
 

	list<int>::iterator i;
	list<int>::iterator j;
	i=a.begin();
	j=a.end();
	j--;
	cout<<"begin=" <<*i<<endl;
	cout<<"end="<<*j<<endl;

结果也很显然begin=0;end=19;

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 标准库的 `std::list` 是一个双向链表容器,提供了一系列用于操作和管理链表的成员函数。以下是一些常用的 `std::list` 成员函数: 1. 构造函数和析构函数: - `list()`:默认构造函数,创建一个空链表。 - `list(const list& other)`:拷贝构造函数,使用另一个链表进行初始化。 - `~list()`:析构函数,释放链表的内存。 2. 迭代器相关函数: - `begin()`:返回指向链表第一个元素的迭代器。 - `end()`:返回指向链表末尾(最后一个元素之后)的迭代器。 - `rbegin()`:返回指向链表最后一个元素的逆向迭代器。 - `rend()`:返回指向链表开头(第一个元素之前)的逆向迭代器。 3. 元素访问和修改函数: - `front()`:返回链表的第一个元素的引用。 - `back()`:返回链表的最后一个元素的引用。 - `push_front(const T& value)`:在链表的开头插入一个元素。 - `push_back(const T& value)`:在链表的末尾插入一个元素。 - `pop_front()`:删除链表的第一个元素。 - `pop_back()`:删除链表的最后一个元素。 4. 容量函数: - `empty()`:判断链表是否为空,返回一个布尔值。 - `size()`:返回链表元素的个数。 5. 修改函数: - `clear()`:清空链表,删除所有元素。 - `insert(iterator pos, const T& value)`:在指定位置之前插入一个元素。 - `erase(iterator pos)`:删除指定位置的元素。 这只是一部分 `std::list` 类的成员函数,还有其他更多的函数可供使用。你可以参考 C++ 标准库的文档或参考相关教程以获得更详细的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值