【发布时间】:2012-05-12 08:27:59
【问题描述】:
#ifndef ASSETS_H_INCLUDED
#define ASSETS_H_INCLUDED
#include <vector>
#include string.h>
const int ID_Max = 100;
typedef char ID[ID_Max];
struct node;
struct people{
std::vector<ID> T_ID;
std::vector<node*> Nodes;
people(ID t, node* person){
T_ID.push_back(t);
Nodes.push_back(person);
}
people(){}
};
struct node {
ID T_ID;
node* Parent;
people* leftChildren;
node* rightChild;
node(ID t, node* p, node* l, node* r) :I_ID(t), Parent(p), rightChild(r)
{leftChildren = new people(); }
};
#endif // ASSETS_H_INCLUDED
我的问题是它在构造函数中将 ID 解释为 char 指针,所以这是构造函数 people::people(char*, node*) 当我想要 people::people(char[ID_Max], node* ) 与节点相同。如果您有建议,将不胜感激。
【问题讨论】:
-
为什么不使用
std::string而不是char[100]? -
我在项目中使用的比较方法是 memcmp,所以我想设置基本大小
-
...那么下一个明显的问题是为什么要使用
memcmp来比较两个字符串值? -
std::string具有==以及其他有用的功能。 -
您的类型
ID不可分配,因此您不能在标准库容器中使用它。
标签: c++ constructor struct char typedef