C++中list和forward_list的迭代器不支持加减运算

来源:互联网 发布:共青团网络志愿者 编辑:程序博客网 时间:2024/06/05 11:54

C++中list和forward_list的迭代器不支持加减运算,这是因为什么原因呢?

那是因为双向链表和单向链表存储元素都不是在一块连续的内存上,所以无法通过加减法远距离查找元素。

下面是测试源码:

#include<iostream>#include<list>#include<forward_list>using namespace std;int main(void){    list<int>  lst1={1,5,7,10,15};    //forward_list<int>  lst1={1,5,7,10,15};    auto plst1 = lst1.begin();cout<<"*plst1:"<<*plst1<<endl;cout<<"*(++plst1):"<<*(++plst1)<<endl;//cout<<"*(plst1+1):"<<*(plst1+1)<<endl;       //cout<<"*(--plst1):"<<*(--plst1)<<endl;    return 0;}

 如果list和forward_list想用加减法就会报错    error: no match for ‘operator+’ (operand types are ‘std::_Fwd_list_iterator<int>’ and ‘int’)

而且forward_list是不支持--运算的,会报error: no match for ‘operator--’ (operand type is ‘std::_Fwd_list_iterator<int>’)


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 布拉格浪漫 布拉格电话 布拉格写真 布拉格旅游几天 布拉格希尔顿酒店 布拉格 青年旅馆 布拉格系列 布拉格旅行费用 布拉格路线 自驾布拉格 飞布拉格 布拉格查理大桥 布拉格要多少钱 52布拉格 布拉格之秋 布拉格英语 布拉格照片 布拉格展会 布拉格特色酒店 布拉格餐馆 布拉格饭店 布拉格教堂 布拉格干红 布拉格说什么语言 布拉格娱乐 布拉格4g 布拉格酒店预订 布拉格多少钱 怎样去布拉格 布拉格饮品 叫醒布拉格 北京布拉格暂停往来 布拉格市长不承认一个中国 到布拉格旅游多少钱 布拉格老城广场旅游 去布拉格旅游要多少钱 布拉格旅游需要多少钱 去布拉格旅游多少钱 布拉格城堡门票价格 布拉格小镇主题酒店 布拉格旅游注意事项