c++ std::指向结构体的指针列表
C++ std::list of pointer to a struct
我相信这是一个非常简单的问题,但我很困惑。
我做错了什么?:
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 ( );
不接受任何参数。它删除列表容器中的最后一个元素,有效地将列表大小减少了一个。参考
由于该函数不接受任何参数,编译器试图通过给出不匹配函数的错误来告诉您相同的信息。
要知道为什么编译器不报告准确的错误,请参见:
why-the-compiler-does-not-detect-correct-function-signature-in-error
要在列表的末尾添加一个新元素,您应该使用:
list::push_back()
要在列表的前面添加一个新元素,您应该使用:
list::push_front()
请参阅此处的参考
仅供参考,错误消息是告诉你到底是什么错了。没有名为pop_back
的成员函数可以接受实参。
您可能会想到push_back
: http://www.cplusplus.com/reference/stl/list/push_back/
pop_back()
不接受参数。这里没有匹配的调用
std::list::pop_back()
不接受参数,它从列表中删除最后一个元素。看起来你想添加,所以使用push_back()
。
curvelist.push_back(curve);
编辑:现在让我详细介绍clang++和它更好的错误消息:
#include <list>
int main() {
std::list<int> x;
x.pop_back(1);
}
$ clang++ example.cxx
example.cxx:6:13: error: too many arguments to function call, expected 0, have 1
x.pop_back(1);
~~~~~~~~~~ ^
相关文章:
- C++ 使用成员函数返回结构体指针属性的值
- 在使用结构体和用函数填充其变量(使用指针)时遇到问题
- 如何使用结构体作为接口从函数返回指向数组的指针
- 如何在结构体中传递指向CURL的指针到向量
- 使用c++中从IDA导出的带有指针的结构体
- 设置两个结构体相等后,指针为NULL
- 结构体中的指针
- 指向结构体的向量指针错误
- 指向结构体的Void *指针
- 返回指向类定义的结构体的指针,多个作用域操作符
- 带有指针的结构体向量
- 你能解释一下指针和递归结构体吗?
- c语言中具有指针数组的结构体
- c++用数组、结构体和指针排序
- 初始化没有指针的结构体
- 如何在不激怒编译器的情况下传递指向结构体的指针?
- 如何释放一个结构体的内存,每次循环迭代的指针
- 如何根据结构体的字段之一对结构指针列表进行排序?
- 从c#调用c++函数-结构体,指针,函数指针
- /a.检测到Glibc.out: munmap_chunk():无效指针- c++结构体的动态数组