c++ - 使用成员函数 top() 从 priority_queue 获取元素

标签 c++ stl iterator priority-queue

大家好! 我有:

“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/

相关文章:

c++ - STL 容器有单元测试吗?

c++ - 为什么将排序的键插入 std::set 比插入打乱的键快得多?

C++、多态和迭代器

c++ - 使用 C++ vector::insert() 添加到 vector 的末尾

Python 自定义迭代器 : Close a file on StopIteration

python - 在 python 中向量化嵌套 for 循环以实现依赖于索引的函数

c++ - 访问 UBLAS 稀疏 vector 中非零元素的索引

C++ 重载 =operator, RAII

c++ - 如何将值从 NSMutableDictionary 复制到 Map?

C++ std::shared_ptr 通过 operator= 赋值