【Bug记录】list模拟实现const迭代器类

简介: 【Bug记录】list模拟实现const迭代器类

项目场景:

模拟list时候,我发现用普通变量去调用const迭代器根本调不动,这是什么情况呢?


问题描述

这里的话非const变量要调用非const迭代器,const变量要去调用const迭代器,这是因为对于下面迭代器编译器就是根据是否是const变量进行匹配的。

除此之外,我自己写的const迭代器解引用操作和!=运算符重载也有点问题:

会出现下面报错:


原因分析:

结论:const变量调用const迭代器,非const变量调用非const迭代器。

第一个报错之所以报无法初始化/转换的原因在于一般迭代器不能转换为const迭代器,这才导致的报的是无法初始化问题,原因在于对于一半变量而言不能调用const迭代器。


解决方案:

给变量加上const,然后const迭代器!=和解引用重载类型一致。


EOF

相关文章
|
2月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
2月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
2月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
List集合的实现类
List集合的实现类
|
4月前
|
编译器 C语言 C++
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
|
5月前
|
存储 安全 Java
Java的List、Set、Queue等接口及其实现类的技术性文章
Java的List、Set、Queue等接口及其实现类的技术性文章
32 1
|
4月前
|
C++ 容器
【c++】优先级队列|反向迭代器(vector|list)
【c++】优先级队列|反向迭代器(vector|list)
33 0
|
5月前
|
C语言 容器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(下 )
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
26 1
|
5月前
|
C语言 计算机视觉
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(中)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
28 1
|
5月前
|
存储 算法 编译器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(上)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
32 1