双链表的擦除值函数,未知错误
erase value function for a double linked list, unknown error
我收到以下错误:
1>c:devlinkedlistlinkedlistdoublelinkedlist.h(390): error C2664: 'int remove(const char *)': cannot convert argument 1 from 'DoubleLinkedList<int>::iterator' to 'const char *'
这是弹出错误的实例。
template <class T>
void DoubleLinkedList<T>::eraseVal(const T& value) {
iterator it = begin();
while ((it = std::find(it, end(), value)) != end()) { it = std::remove(it); }
}
更具体地说,错误来自以下行:
while ((it = std::find(it, end(), value)) != end()) { it = std::remove(it); }
有谁知道如何解决这个问题?完整的代码可以在这里找到。
您没有正确使用 std::delete。 您应该提供两个迭代器,而不是一个迭代器来删除元素。
正在发生的事情是编译器认为您正在尝试从接受字符指针的<cstdio>
中调用 std::remove 因此会出现错误。
若要修复此错误,请使用两个迭代器参数调用std::remove
。 第二个参数表示要删除的元素之后的一个元素:
std::remove(it, std::next(it));
相关文章:
- 双链表的擦除值函数,未知错误
- 未知C++错误:致命错误:glibc检测到无效的stdio句柄
- 带有unique_ptr的通用单链表,MS visual studio C++中存在未知错误
- 在最坏的情况下试验快速排序.它运行良好,但在最坏的情况下发生未知错误.我想
- C++ [] 重载未知错误
- 打电话时返回未知错误
- C 包括文件会导致未知错误
- Qtcpserver 仅在调试器下在侦听函数上返回未知错误
- std::p romise<void> 抛出未知错误,除非调用睡眠
- 如何在将我的 QT 应用程序交叉编译为 raspberry-pi3 时修复未知错误
- 使用reinterpret_cast的未知错误
- 如何修复QFile打开错误(未知错误),即使文件存在
- 使用c++特征库时出现未知错误
- 使用特征库的 mingw 出现未知错误
- CUDA 未知错误后 cuBLAS 调用
- 未知错误,调试器只给我一个内存地址
- 在子类之外实现函数导致未知错误
- 影响格雷厄姆查找凸包算法的未知错误
- 未知错误(-1000)执行cl_command_ndrange_kernel
- QT NetworkAccessManager未知错误