【发布时间】:2014-08-26 18:53:27
【问题描述】:
我创建了一个结构,并且该结构上有一个指标。我正在生成一系列这些结构,我想根据这个指标将它们排序到一个数组中。基本上,如果度量为 0,我希望它在数组的 [0] 槽中的列表中,如果度量为 14,我希望它在数组的 [14] 槽中的列表中。度量的界限(数组的大小)是基于生成结构的相同变量的变量,因此我需要使用 malloc 动态声明数组。我一直在尝试如何获取我的结构列表的这个数组。我想不通。我已经用谷歌搜索了这个问题,但无法提出解决方案。
另外,一旦我有了数组,如何将另一个元素添加到特定数组单元的列表中?然后回过头来比较第 i 个单元格中列表的所有元素和第 (n-i) 个单元格的元素?
编辑:并非所有指标都有元素也可能会有所帮助。
编辑 2:我已经尝试过了,它似乎有一些问题。
list<s_pair> *pairs;
pairs = (list<s_pair>*) malloc(sizeof(list<s_pair>) * (N + 1));
j = { a, b };
pairs[m].push_back(j);
其中 m 是类型为 s_pair 的 j 的度量。它让我编译,但它在尝试 push_back(j) 时卡住了。
【问题讨论】:
-
每个指标是否只有一个结构,您的分布是否密集(也就是很少或没有孔)?请注意
declaring不是您使用的意思,您想要defining或allocating。这对于 C 和 C++ 尤其重要,因为它们都是不同且定义明确的概念。 (defining暗示declaring,但不是相反) -
没有。每个指标都有可能没有结构或一堆结构。而且我不得不说,四分之一的指标可能没有任何结构,但其余的应该至少有一个。此外,注意到。声明和定义没有什么关系?
-
看起来您正在描述一个带有开放链接的哈希表。 (您的指标是哈希函数)
-
看看定义这些概念的 C 标准。有免费的草稿。不管怎样,你想要一个满足你所有的参考需求。
-
在 C++ 中,
malloc你的list几乎可以肯定是一个错误,因为这会保留空间但不会构造任何对象。我建议选择一种语言,因为每种语言的答案都大不相同。
标签: c++ list struct linked-list malloc