我试图将项目添加到列表中without动态使用 .Add() ,请注意,由于我的项目的性质,我无法使用字典或简单数组甚至 HashSet 等替代数据结构。我需要一个锻炼解决方案来解决以下问题:
List<int> initA = new List<int>();
for (int i = 0; i < m; i++)
initA[i] = i;
UPDATE :但是,如果有人建议我一个更好的数据结构来实现以下想法,那么我可以使用它作为替代方案:
我已经设置了 A 例如:
A[0] = (1,2,3,4,5...)
A[1] = (10,20,30,40 ...)
我需要直接访问: A[0][1]=2 , A[1][3]=40
我不知道内部数组的大小(集合元素的实际大小),这就是为什么我将这个集合实现为列表数组,并且我不能对内部数组使用锯齿状数组,因为我不知道它的大小。设置元素是在运行时添加的。
对于解决第一个问题有什么建议吗?甚至是更换代表此类集合的策略的建议?
请注意,我需要高效的数据结构,因为A
将存储>1M组。
在 C++ 中这是非常简单的任务,您可以使用指针...事实上,这是我解决该问题的方法,因为在 C# 中使用不安全代码存在风险