【发布时间】:2016-02-22 15:32:09
【问题描述】:
我想将数组的元素插入到链表中。以下是我正在使用的一段代码:
for (int i = 0; i<MAXSIZE; i++)
{
Node* n1 = new Node();
n1->SetData(randArray[i]);
n1->SetIndex(i);
n1->SetNext(NULL);
//checks if NULL
if (start == NULL) {
start = n1;
start->SetNext(NULL);
}
else {
//inserts the values to the end of the node
Node *p = start;
while (p->GetNext() != NULL) {
p = p->GetNext();
}
p->SetNext(n1);
}
}
这里 randArray[i] 包含 100000 个元素。
现在我希望这个过程执行得更快。目前,50000 个元素需要 13 秒。
有人可以帮忙吗?
【问题讨论】:
-
好像没有人提到内存池和自定义分配器。
-
@ddriver 一位用户确实推荐了内存池,但随后删除了他们的评论。我猜这些东西超出了 Vamsi 所寻找的范围,尽管它们可能对其他拥有算法合理程序但仍需要它更快的人有用。
标签: c++ arrays data-structures linked-list singly-linked-list