C++ 链表列表运算符[]
c++ linkedlist list operator[]
>我正在尝试实现链接列表,但我对运算符[] 有一些问题
template <class T>
T& L1List<T>::at(int i){
L1Item<T> * pRet = this->_pHead;
int idx = 0;
while(pRet){
if(i != idx){
pRet = pRet->pNext;
idx++;
}else return (pRet->data);
}
}
template <class T>
T& L1List<T>::operator[](int i){
return at(i);
}
当我编译它时,它使用 list->at(i( 运行,但 list[i]。 int a = 列表[i];错误是"无法在初始化时将 L1List'<'int> 转换为'int'
如果list->at(i)
有效,则意味着list
是一个指针,而不是一个对象。因此,list[i]
计算对象。这就是int a = list[i];
不起作用的原因,这也解释了错误消息。不能使用L1List<int>
初始化类型int
的对象。
您需要使用:
int a = (*list)[i];
或者让它变得非常复杂并使用:
int a = list->operator[](i);
相关文章:
- 链接列表运算符重载没有打印出我想要的内容
- 将异类初始值设定项列表传递给流运算符
- 如何在可观察量列表中使用 RxCpp 运算符?
- 当返回语句时,逗号运算符、大括号初始化列表和 std::unique_ptr 组合在一起
- 可视化 如何实现 c++ 列表的运算符=?
- 使用继承的指针列表复制构造函数或重载运算符=
- 提升精神气中的序列和列表运算符的属性?
- 错误:运算符 [] 不匹配。在比较列表中的 int 和 int 时<int>,
- 使用初始值设定项列表作为函数参数的类对象实现运算符 [] 的示例
- 如何重载运算符<<显示我的列表
- C++ 链表列表运算符[]
- 我可以在 Boost.Spirit.Qi 中向列表运算符 (%) 提供内存分配提示吗?
- 为什么我可以在不使用赋值运算符的情况下使用列表初始化普通数组
- 如何让迭代器使用赋值运算符对列表进行操作
- 复制构造函数和运算符"="他们没有打印列表 l 的副本
- 为什么C++不允许在条件运算符中进行隐式列表初始化?
- 多项式链接列表中的过载 运算符
- 将[]运算符与链接列表一起使用
- 对于列表排序,有没有办法使用相同的参数让多个运算符重载?
- 运算符 [] 列表 CPP