访问节点矢量
Accessing Vector of Nodes
只是一个快速的C++问题。我一直在尝试将向量中的节点保存到节点的右子节点。
例如,
我有一个名为node的结构,它有一个指向左子级和右子级的指针。因此:
struct node{
node *left;
node *right;
};
我的节点向量,
vector<node> nodeVec;
也由节点组成。
目标是从向量中取出一个节点,并保存为新节点的左右子节点。
因此:
node *tree = new node();
tree->left = *nodeVec.at(0);
tree->right = *nodeVec.at(1);
但它抛出了一个错误,说它无法识别"*"运算符。仅尝试
tree->left = nodeVec.at(0)
它说我无法将节点转换为节点*。
但如果我使用
tree->left = &nodeVec.at(0)
它成功地保存了我左边孩子的地址。我看了几个网站和答案,我认为在这里找到的是
指向访问元素的去引用矢量指针
可能是最相关的。我给了它一次机会,投了很多错误,我不太明白。
简而言之,根据我所读到的内容,我需要取消引用向量中的节点。但如果它不接受"*"运算符,该怎么做呢?
提前感谢!
您可以访问向量中的节点,如下所示:
node* p_left = nodeDev.at(0).left;
node copy_constructed_node(*(nodeDev.at(0).right));
您也可以使用tree
:
node* p_left = tree->left; // your code set this to &nodeVec[0]
更一般地说,我建议您对指针进行一些背景阅读(可能在这里),或者更好的是,考虑标准容器是否能满足您的需求,例如std::map
(这里是教程)。
相关文章:
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 类成员函数无法访问同一类的私有结构节点?
- 在C++中删除双向链表的头节点后出现访问冲突异常
- 使用二进制搜索树中的迭代器对象访问左侧节点
- 尝试从单向链表C++中删除单个节点时出现读取访问冲突
- 有没有办法访问C++ Boost rtree 中的非叶节点
- C++:无法访问节点值
- 如何访问链式哈希表链表中的每个节点
- 从链表数组访问节点数据
- 使用访问者设计模式在N- ARY树中重复访问子节点值
- 如何在OMNet++中访问我的模拟的不同节点
- 在节点插件中访问 inspector_agent.h
- 链接列表节点的访问违规:C
- Dijkstra首个节点访问了
- 使用路径调查访问网格中的所有节点
- 如何通过队列指针访问存储在节点中的类中的数据
- Boost::p tree - 访问列表中包含的属性树节点
- 在有向图中精确访问所有节点一次
- 当我通过删除临时节点来释放内存时,我会得到读取访问违规行为.但是只有当我返回错误语句时