Описание тега deque

Двусторонняя очередь. Тип данных контейнера, который обычно поддерживает эффективную вставку и удаление с двух сторон.
2 ответа

Перегрузка оператора +=

Я должен написать оператор перегрузки += но я не знаю, как сделать это правильно (я начал писать в конце кода, это было неправильно, поэтому я удаляю все, кроме вы видите). #include <iostream> using namespace std; class dek { private: int *x,n…
01 мар '12 в 18:01
0 ответов

Большой набор данных: записывать данные в файл постепенно? или постоянно?

У меня есть рабочий прототип-код, который создает .ppm файл изображения из набора простых параметров. Цель состоит в том, чтобы создать очень большую картинку (что-то вроде 100000 * 100000 пикселей) и распечатать обои с высоким разрешением из нее на…
11 июл '13 в 19:07
2 ответа

Самый быстрый способ добавить деку в конец вектора?

Этот вопрос о скорости. Я использую функцию в библиотеках openCV (в классе FaceRecognizer), которая требует ввода вектора. Мне нужно построить этот вектор путем объединения нескольких дек. Существуют ли более быстрые способы, кроме итерации по deque…
30 сен '15 в 21:32
1 ответ

deque::push_back с потоками странно реагирует

Я пробовал разные вещи, но push_back потоков в контейнере deque реагирует странно. почему это происходит?? Это из-за конструкторов копирования / перемещения? Вот вывод программы... progress[0]:-1 progress[1]:-1 executing threads... progress[0]:100 p…
28 дек '16 в 14:51
1 ответ

C++ deque: когда итераторы признаны недействительными

Пожалуйста, поправьте меня, если я ошибаюсь. Спасибо! insert а также erase будет перемещать элементы, но элементы перед позицией, где происходит вставка / удаление, не перемещаются, и, следовательно, их итераторы остаются действительными. push_back …
29 апр '12 в 16:54
2 ответа

Уничтожить деку с помощью указателей и бесплатно в C

Я пытаюсь уничтожить свою деку, но почему-то не получаю указатели. Я написал следующий код (deque это указатель на указатель, который указывает на первый элемент deque). DequeItem - это структуры с полями next (указатель на следующий элемент) и data…
25 апр '12 в 07:23
1 ответ

Действительно ли std::deque потокобезопасен?

Я знаю, что говорится в книгах о том, что std::deque умеренно безопасен для потоков, но мой опыт доказывает обратное. Я использую VS 2010. Есть по крайней мере два потока (может быть N потоков, но добавление потоков только делает проблему быстрее), …
09 апр '14 в 23:59
3 ответа

Сортировать деку, содержащую структуру

Я хочу отсортировать deque согласно значению int g, содержащемуся в структуре узла. Структура моей программы такая: struct node { int x; int y; int g; }; deque<node> open; Это сортирующая функция, которую я пытаюсь, но она выдает значения мусо…
26 июн '15 в 09:19
1 ответ

C++ std::deque copy конструктор проблема

#include <deque> #include <vector> struct A { A(int* const p) : m_P(p) {} A(A&& rhs) : m_P(rhs.m_P) { rhs.m_P = nullptr; } A& operator=(A&& rhs) { delete m_P; m_P = rhs.m_P; rhs.m_P = nullptr; } ~A() { delete m_P; } A…
12 авг '16 в 07:30
3 ответа

Вставка предмета в деку

Концентрируясь конкретно на методе insertFront() в main, как мне создать элемент, содержащий значения num и price. Более того, он должен содержать значения num и price или userinNum и userinPrice? theQueue.insertFront(//ITEM???); Основной метод MyDe…
25 мар '16 в 21:32
3 ответа

Можно ли одновременно удалить и получить копию объекта из C++ std::vector или std::deque?

На Яве Deque У класса есть методы удаления для концов, которые фактически возвращают возвращаемый элемент. В C++ кажется, что единственный способ добиться того же поведения - это сначала явно скопировать элемент, а затем извлечь его. std::deque<i…
01 ноя '13 в 08:57
3 ответа

Лучший тип контейнера

Я работаю в приложении, которое требует "Скользящее окно", которое является просто контейнером строк, Window = ["the", "dog", "is", "hungry"] Приложение обрабатывает большой текстовый файл, и когда определенные условия выполняются, окно добавляет но…
12 июл '17 в 03:42
3 ответа

Ошибка в методах отображения и вставки (двусторонняя очередь)

1) Моя проблема когда я делаю удаление из правой или левой программы будет удаляться истина, но когда я вызываю метод diplay, содержимое неправильно вот так я вставляю 12 43 65 23 и когда make удалить из левой программы удалит 12 но когда вызов мето…
23 май '10 в 15:03
2 ответа

Deque последний элемент вставки.

Datastructure Degue. Метод для вставки значения впереди: Отлично работает public void insertLeft(Item item) { if (size == deque.length){ resize(2 * deque.length); } deque[start] = item; start++; size++; } Метод для вставки значения в хвост - перезап…
03 дек '18 в 18:22
1 ответ

Почему std::deque не является вектором с памятью, зарезервированной до индекса 0?

Насколько я понимаю, мотивация deque заключается в предоставлении контейнера с произвольным доступом с эффективным push_front, Обычно цитируемые преимущества вектора по сравнению с deque включают более быстрый обход и at(), но в основном его совмест…
10 фев '13 в 00:03
1 ответ

Добавление в начало ArrayDeque в Java

Мне поручено создать метод, который добавляет в начало (слева) ArrayDeque без использования библиотеки Deque. Я придумал метод, хотя он не добавляет в очередь, он выходит с пустой очередью. Вот мой метод addLeft: public T[] addLeft(T item){ T[] copy…
26 янв '16 в 13:32
4 ответа

Наследование и наследование объектов в C++

У меня есть несколько элементов управления, организованных следующим образом: deque<wxTextCtrl*> dequeEdit; deque<wxStaticText*> dequeText; deque<wxComboBox*> dequeCombo; Все эти элементы управления наследуются от wxWindow, который…
01 окт '12 в 12:27
2 ответа

deque push back error

Я пишу компилятор и использую deque для хранения меток методов класса и вот пример кода: #include <deque> #include <iostream> #include <string> using std::cout; using std::deque; using std::endl; using std::string; int main() { deq…
11 май '12 в 14:25
1 ответ

Приложение Python Deque со списком

Я сейчас создаю свой deque объект, используя следующее, self.CommandList = deque((['S', False, 60],['c'],['g16'],['i50'],['r30', True],['u320'],['o5000'],['b1'],['B4500'],['W1'],['l5154'],['!10'],['p2', True, 10],['e1'],['K20'],['U0'],['Y0'])) Но я …
15 июл '10 в 14:15
2 ответа

Запросы на основе массива: почему AddFront/RemoveFront O(1)?

С deque на основе массива, почему добавляются и удаляются с лицевой стороны амортизированный O(1)? Для меня будет иметь смысл, что это всегда будет O(n), потому что любая операция будет означать, что текущие значения массива нужно будет "переместить…
22 ноя '15 в 01:35