大家好! 我有:
“ClassA.h”
class ClassA
{
....
public:
priority_queue<OBJECT*, vector<OBJECT*>, compound_objectNS::compare> m_prior_queue_Objects;
....
}
“ClassB.h”
class ClassB
{
void someFunction(void);
ClassA* m_network;
}
“ClassB.cpp”
void ClassB::someFunction(void)
{
vector<Compound_object*>::const_iterator vit;
vit = this->m_network->m_prior_queue_Objects.top();
- 这里是我从 iSense 得到的 - 没有运算符“=”匹配这个操作数的错误。 怎么了?!
更新:typedef Compound_object* OBJECT*
最佳答案
priority_queue::top()
返回对元素的 const 引用,而您正在尝试分配给迭代器。你可以做两件事:
从常量引用到指针实例化一个(常量或非常量)指针:
OBJECT* p = priority_queue::top();
从返回中实例化一个对指针的常量引用。
const OBJECT*& r = priority_queue::top();
关于c++ - 使用成员函数 top() 从 priority_queue 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087319/