【发布时间】:2019-08-02 00:49:52
【问题描述】:
您好,我是 C++ 的初学者,我无法解决这个问题。我有一个节点链表,该节点包含 int 数组的数据和指向下一个节点的指针。
struct node {
unsigned int numbers[6];
node* next;
};
我也有一堂课:
private:
ticket* ticketListHead;
ticket* ticketListTail;
在公共方法中:
public:
void newNode() {
int arr[6];
for(int i = 0; i < 6; ++i) {
arr[i] = ( std::rand() % 49 ) + 1;
}
node *temp = new node;
temp->numbers=arr;
temp->next=NULL;
}
我认为问题在于temp->numbers=arr 行,因为我认为不能像在 C++ 中那样分配数组。在这种情况下,我不确定如何解决问题,我尝试在网上查找。一些帮助将不胜感激!
【问题讨论】:
-
你可以使用
std::array吗? -
我相信是的。我会使用什么方法?
-
警告:使用
rand()is highly problematic,我们强烈建议您使用合适的random number generator facility in the Standard Library,以产生高质量的随机值。您使用time(NULL)作为随机数种子意味着如果在同一秒内运行,这将产生相同的结果,并且在许多平台上rand()是barely random at all。 -
@Samm 只需将循环移动到
newNode()的末尾,直接写到temp->numbers[i]而不是arr[i]。 -
为什么
node没有构造函数?它可能应该避免错误地初始化它或忘记填充next等。
标签: c++