标签: deque

为什么java链表实现使用接口deque?

我正在查看LinkedList的java实现,并发现了这个:

public class LinkedList<E> 
       extends AbstractSequentialList<E> implements List<E>,
               Deque<E>, Cloneable, java.io.Serializable
Run Code Online (Sandbox Code Playgroud)

为什么LinkedList应该支持Deque接口?我理解将元素添加到链表末尾的愿望,但这些方法应该在List接口中包含.

java linked-list deque

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

我应该如何管理对ArrayDeque的多线程并发访问?

我的Swing GUI显示由后台线程顺序删除的项目的JList.

后面将JList是ArrayDeque<Card>,myHopper,实施myHopper.getSize()myHopper.getElementAt(),作为每一个的AbstractListModel的合同.

后台线程使用删除项目myHopper.poll().

毫不奇怪,我目前正在获得超出范围的AWT数组索引.

我应该怎么做才能在EDT线程和后台线程之间正确同步对myList的访问?我看过参考文献,Collections.synchronizedList(arrayList)但我不认为这适合我的ArrayDeque.

java concurrency jlist deque

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

是否可以同时从C++ std :: vector或std :: deque中删除并获取对象的副本?

在Java中,Deque该类具有实际返回返回元素的末尾的删除方法.在C++中,似乎实现相同行为的唯一方法是首先显式复制元素然后弹出它.

std::deque<int> myDeque;
myDeque.push_back(5);

int element = myDeque.back();
myDeque.pop_back();
Run Code Online (Sandbox Code Playgroud)

是否有同时进行这两种机制的机制?

c++ deque c++11

3
推荐指数
2
解决办法
420
查看次数

deque插入迭代器与指针的无效(引用)

基于cplusplus.com的引文

如果插入发生在序列的开头或结尾,则与此容器相关的所有迭代器都将失效,但指针和引用仍然有效,指的是它们在调用之前引用的相同元素.

为什么插入到前面或末尾会使迭代器无效而对指针和引用无效?

c++ stl insert push-back deque

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

如何在std :: deque中获取元素索引

我有一个双端队列,我有一个属于双端队列的对象.

std::deque<Item> items;
// full deque with objects
// ...
Item &item = items[5];
Run Code Online (Sandbox Code Playgroud)

现在我想在deque中获取该元素的索引:

size_t index = &item - &*m_items.begin();
Run Code Online (Sandbox Code Playgroud)

我希望索引等于5,但我得到的东西比deque的大小要大.

当然,我可以通过deque查找我的对象,但是有可能在O(1)中得到元素的索引吗?

c++ deque

3
推荐指数
2
解决办法
3462
查看次数

什么是堆栈,队列,集合和双端队列的Big-O?

堆栈,队列,集合和双端队列的Big-O效率与插入,搜索,索引,空间和删除复杂性有什么关系?

queue big-o stack set deque

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

长期运行C++应用程序中的内存泄漏

我正在运行一个长期运行的C++应用程序,它分配不同的对象并将其存储在几个deque和map中,并且一次从这些数据结构中释放这些对象.我正在经历少量的内存增加(通常为1 mb到2我已经运行了内存泄漏检测器(valgrind),但我找不到任何可疑的内存泄漏.我想知道问题是否与deque和存储对象的地图有关.一旦从数据结构中弹出对象,deque和map的内存是否会将内存释放到OS?任何人都可以指出解决方案或内存增加的一般可能原因吗?

c++ memory dictionary memory-leaks deque

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

std :: deque的错误?

我试图使用循环和迭代器从双端队列中删除一个元素.我正在关注在线示例,但看到了一个错误.

我正在使用g ++(GCC)4.8.3 20140911(Red Hat 4.8.3-9).

这是代码:

#include <iostream>
#include <deque>

using namespace std;

// Display the contents of a queue
void disp_deque(deque<int>& deque) {
  cout << "deque contains: ";
  for (auto itr = deque.begin(); itr!=deque.end(); ++itr)
    cout << *itr << ' ';
  cout << '\n';
}

int main(int argc, char** argv) {
  deque<int> mydeque;

  // Put 10 integers in the deque.
  for (int i=1; i<=10; i++) mydeque.push_back(i);
  disp_deque(mydeque);

  auto it = mydeque.begin(); 
  while (it!=mydeque.end()) {
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ iterator deque c++11

3
推荐指数
2
解决办法
942
查看次数

Python中deque中随机访问的时间复杂度

我想知道Python中deque的get操作的时间复杂性.

我知道它是作为Python中的双重链接实现的.这是否意味着它的时间复杂度是O(n)?

python big-o deque

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

如何在不删除deque的情况下获取deque的第一个值?

我使用Python 3.6.1并且由于其方便性,我经常使用集合中的deque().这一次,我需要得到一个双端队列的第一个值,并想知道它是否可能.

问题是我可以使用.popleft(),但它最终会同时删除该值.我想到了list(deque01)[0],但是当deque01很大或者获得第一个值的过程重复多次时,我担心它是否会耗费大量资源.是否有任何方法或技巧可以有效地做到这一点?

python deque

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