【发布时间】:2013-06-02 20:42:04
【问题描述】:
我创建了一个名为“SensorNode”的类,每个 SensorNode 都有一个传感器链接列表。 SensorNode 的一个数据成员是一个名为 mySensors 的 SensorBlock(链表)指针。 mySensors 指向它所在的传感器节点所拥有的传感器链表中的第一个传感器。这是 SensorNode 的类声明:
class SensorNode {
char* NodeName;
int NodeID;
LOCATION Node1;
float batt;
int func;
SensorBlock *mySensors;
public:
SensorNode(char *n, float x, float y, float z, int i, float ah);
void print();
void setOK(int o);
int getOK();
void setLOC(float longi, float lat, float h);
int amIThisSensorNode(char *n);
void addSensorToNode(sensor *s);
};
这是 SensorBlock 的类声明:
class SensorBlock {
friend class SensorNode;
SensorBlock * LLelement;
sensor * SensEl;
};
在 addSensorToNode 函数中,如何将指向的传感器添加到链表中。基本上,我所拥有的内容如下,我试图弄清楚“else”语句中的内容。我查看了教程,但它们是用于创建新对象并添加它,这是用于添加指向对象的指针。
void SensorNode::addSensorToNode(sensor *s) {
if(mySensors == '\0')
{
mySensors->SensEl = s;
}
else{
//maybe something like this???
// mySensors->SensEl =s;
// mySensors->LLelement++;
}
}
【问题讨论】:
-
你想做什么?学习具有特定元素类型的数据结构似乎......没有效率?
std::list<sensor*>有什么问题吗? -
这是一个作业,所以我有一些限制,并且必须以这种方式创建自己的链表。此外,std::list 是一个双向链表,这可能是他希望我们创建自己的任务的原因。虽然没有明确说明。我认为这是学习这个概念。因此,从概念上讲,我试图了解如何将传感器(通过指针)添加到正在创建的链表中。
-
好的,很抱歉有怀疑。这看起来确实是一个异常混合的练习。还有
std::slist和std::forward_list,顺便说一句:0 -
哈哈不用担心,你是对的。哦,不知道那些。我仍然不能使用它们,但很高兴知道未来。谢谢!
标签: c++ class pointers linked-list