相关疑难解决方法(0)

何时在Java中使用LinkedList而不是ArrayList?

我一直只是一个人使用:

List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.

何时应该LinkedList使用,ArrayList反之亦然?

java collections linked-list arraylist

2974
推荐指数
27
解决办法
102万
查看次数

在哪种情况下我使用特定的STL容器?

我一直在阅读关于C++的书中的STL容器,特别是关于STL及其容器的部分.现在我明白了每一个都有自己的特定属性,而且我已经接近记住了所有这些...但我还没有掌握的是在哪种情况下使用它们.

解释是什么?示例代码是更受欢迎的.

c++ stl container-data-type

179
推荐指数
6
解决办法
6万
查看次数

链接列表在什么情况下有用?

大多数时候,我看到人们试图使用链接列表,在我看来,这似乎是一个穷人(或非常差)的选择.也许有必要探讨链表是否是数据结构的良好选择的情况.

理想情况下,答案将阐述用于选择数据结构的标准,以及哪些数据结构在特定情况下可能最有效.

编辑:我必须说,我不仅对数字,而且对答案的质量印象深刻.我只能接受一个,但如果有一些更好的东西不存在,那么还有两三个我不得不说会值得接受.只有一对(特别是我最终接受的那个)指出了链表提供了真正优势的情况.我确实认为Steve Jessop不仅要提出一个,而且要提出三个不同的答案,值得一提,我发现这些答案令人印象深刻.当然,即使它只是作为评论发布而不是答案,我认为Neil的博客条目也值得一读 - 不仅信息丰富,而且非常有趣.

language-agnostic linked-list data-structures

108
推荐指数
4
解决办法
2万
查看次数

为什么在一个大的std :: list上迭代这么慢?

正如标题所暗示的那样,我遇到了一个我的程序问题,我使用std :: list作为堆栈,并迭代列表中的所有元素.当名单变得非常大时,该计划花了太长时间.

有没有人对此有一个很好的解释?是一些堆栈/缓存行为?

(解决了问题,将列表更改为std :: vector和std :: deque(顺便说一下,这是一个惊人的数据结构),所有内容突然变得更快)

编辑:我不是一个傻瓜,我不访问列表中间的元素.我对列表做的唯一事情就是在结尾处开始删除/添加元素并迭代列表中的所有元素.而且我总是使用迭代器迭代列表.

c++ runtime list std deque

1
推荐指数
1
解决办法
5999
查看次数

哪个是C++中最快的STL数据结构来迭代大量元素?

元素遵循某种属性,其中每个元素通过某种复杂关系与其前一个元素相关(假设没有已知的简单公式来找出第i个元素)我想计算该系列的某个元素的值我必须计算每个元素的值,并在此过程中迭代完整的元素列表.

我使用了一个数组,它可能会导致一些内存分配错误(SIGABRT).我用了一个矢量,同样的错误.也许是因为元素的数量巨大而且它们是连续存储的.然后我使用了一个列表,没有这样的错误,但它花费的时间超过了可接受的时间限制.

c++ stl

1
推荐指数
1
解决办法
3323
查看次数