cpp*_*der 1 c++ stack void-pointers
我正在使用用C编写的库,并且该库提供了仅使用void*的头文件.该库用于创建一种图形,该图形存储在C数据库中.标头将void*返回到图中的节点.要创建图形,我需要解析一堆节点名称.与节点名称堆栈并行,我需要为节点维护堆栈void*.我有这样的事情:
std::stack < void* > nodeStack;
while (!nodeNameStack.empty()) {
// check if nodeNamestack.front() meets some criteria
nodeStack.push(C_API_To_Create_Node(nodeNameStack.pop()));
// Do some processing
// check if nodeStack.size() >= 2
void *node1 = nodeStack.pop()
void *node2 = nodeStack.pop()
// Above line issues error saying void value not ignored as it ought to be..
Run Code Online (Sandbox Code Playgroud)
我不确定是什么问题,因为我们保证nodeStack大小至少为2.我会很感激任何克服此错误的建议.
std::stack::pop()不会返回删除的元素.top()在弹出它之前你必须阅读它.