我相信这是一个非常简单的问题,但我很困惑。
我做错了什么?:
std::list<curvesdata *> curvelist;
curvesdata * curve = new curvesdata;
curvelist.pop_back(curve);
---> no matching function for call to 'std::list<curvesdata*>::pop_back(curvesdata*&)
似乎我的指针已转换为指针引用...?为什么呢?
谢谢。
最佳答案
void pop_back ( );
不接受任何参数。它删除列表容器中的最后一个元素,从而有效地将列表大小减小了一个。请参见参考文献here。
由于函数不带任何参数,因此编译器会通过给出不匹配函数的错误来尝试告诉您相同的信息。
要知道为什么编译器不报告确切的错误,请参阅以下内容:
why-the-compiler-does-not-detect-correct-function-signature-in-error
要在列表末尾添加新元素,您应该使用:
list::push_back()
要将新元素添加到列表的开头,您应该使用:
list::push_front()
请参见参考文献here。
关于c++ - C++ std::指向结构的指针列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7605783/