gpt4 book ai didi

c++ - 如何将 void* 存储在堆栈 C++ 容器中

转载 作者:行者123 更新时间:2023-11-30 00:40:18 24 4
gpt4 key购买 nike

我正在使用一个用 C 语言编写的库,该库提供的 header 仅使用 void*。该库用于创建一种图形,存储在 C 数据库中。 header 将 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..

我不确定问题出在哪里,因为我们保证 nodeStack 大小至少为 2。如果有任何建议可以克服此错误,我将不胜感激。

最佳答案

std::stack::pop() 不返回移除的元素。在弹出它之前,您必须使用 top() 读取它。

关于c++ - 如何将 void* 存储在堆栈 C++ 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com