STL之forward_list

forward_list是C++标准库中的一个单链表容器,它不支持反向遍历,仅能从头到尾遍历。没有反向迭代器,不提供back()、push_back()、pop_back()等操作,但提供了sort()、merge()等功能。forward_list与其他链表容器如list的主要区别在于其迭代器只支持自增。
摘要由CSDN通过智能技术生成
  1. forward_list 和 list 最主要的区别是:forward_list 不能反向遍历元素;只能从头到尾遍历。

  2. forward_list 无法使用反向迭代器。只能从它得到const或non-const前向迭代器,这些迭代器都不能解引用,只能自增;

  3. 没有可以返回最后一个元素引用的成员函数back();只有成员函数front();

  4. 因为只能通过自增前面元素的迭代器来到达序列的终点,所以push_back()、pop_back()、emplace_back()也无法使用。

  5. 没有成员函数 size()
  6. forward_list 和 list —样都有成员函数 sort() 和 merge(),它们也都有 remove()、remove_if() 和unique(),所有这些函数的用法都和 list 相同。
  • 函数

1、distance()

//distance() 函数来得到forward_list中元素的个数
forward_list<int> my_words {1, 2, 3};
int count = std::distance(begin(my_words),end(my_words));

 2、advance()

//advance()函数没有返回值,函数会将前向迭代器自增需要的次数
forward_list<int> data {10, 21, 43, 87, 175, 351};
forward_list<int>::iterator iter = begin(data);
size_t n = 3;
//将当前迭代器iter向右移动n
std::advance(iter, n);
std
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值