C++如何访问结构中的结构
C++ how to access struct in struct
>我有一个关于结构的问题。C++不是我正在学习的语言,但我需要做练习。
我有一个这样的结构:
struct List
{
int data;
List* next;
};
我得到了类和方法,我可以使用它们添加/删除/打印结构的元素,例如查看我得到的方法的元素:
void Kopa::Print()
{
List *tmp = p;
while (tmp != NULL)
{
cout << tmp->data << endl;
tmp = tmp->next;
}
tmp.struktura;
}
问题是,如何在列表结构中添加和访问新结构?我想它的结构看起来像这样,但我不明白如何使用类方法访问它。
struct List
{
int data;
List* next;
struct NewList
{
int data;
NewList* next;
};
};
首先,您必须声明该结构的成员,就像声明其他成员变量一样:
struct List
{
struct NewList
{
int data;
};
NewList my_new_list; // Declare a member
};
然后,您可以像使用任何其他成员一样使用它,只需根据需要嵌套成员访问权限:
List l;
l.my_new_list.data = ...;
如果你的意思是如何访问List
内部的NewList
结构来声明一个局部变量,那么你必须使用 scope 运算符::
:
List::NewList new_list;
new_list.data = ...;
这
看起来像是链表的实现赋值
您的结构看起来像节点结构,而不是列表。 所以我将使用结构节点而不是列表以避免混淆。
我不知道你的p从何而来,但它本质上是你在函数中创建p的方式。
Node *p = new Node();
p->data = 1;
p->next = NULL;
现在,如果您需要添加新的,请执行相同的操作
Node *q = new Node ();
q->data = 2;
q->next = NULL;
//assign q after p
p->next = q;
您还可以在结构中创建构造函数
Node (Node *previous, int newData)
{
List *q = new Node ();
q->data = newData;
q->next = NULL;
previous->next = q;
}
确保在完成这些指针后调用 Delete 来清理它们
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 访问存储在向量C++中的结构的多态成员
- 访问类lintalizer列表中的结构元素
- 仅使用结构名称访问结构成员
- 如何从其他结构访问受保护的结构变量
- 如何从类中定义的结构访问私有成员?c++
- 枚举范围无法通过 C++ 中的类中的结构访问
- 通过更高级别的结构访问子变量
- 从匿名结构访问枚举条目
- 如何定义别名以通过结构访问枚举类成员
- C 用于向量中的结构访问索引或使用参考值
- 奇怪的结构访问错误
- 将数组作为结构访问与未定义的行为
- 使用c++以及x86和x64体系结构访问处理器中断
- 使用 ostream 从另一个类的结构访问数据
- 从结构访问数组会使程序崩溃
- 联合中的C++结构访问联合成员
- SWIG如何使用Lua表从Lua中的c结构访问字节数组
- c++结构访问冲突