Вопросы с тегами [set]

1

голосов
2

ответ
62

Просмотры

Как я могу удалить элемент из набора в C ++, не удаляя его?

Использование зОго :: установлен в C ++, единственный способ, которым я могу найти, чтобы удалить элемент из набора состоит в использовании методы стирания. Это удаляет элемент в вопрос, который я не хочу, чтобы это произошло. Единственный способ, которым я могу думать, чтобы удалить элемент из набора, не удаляя его было бы создать новый набор и добавить все элементы старого набора к нему итеративно, убедившись, что не добавить элемент, который должен быть удален из набор, затем удалить старый набор. Есть ли уборщик способ сделать это?
skrooms
1

голосов
2

ответ
55

Просмотры

Python хеш, если случаи

У меня есть вопрос о хэш-функции (само) Питона. Так что в моем методе у меня есть следующие части коды Защита __init __ (я, UPPER1, LOWER1, upper2, lower2): self.phase = 1 self.gammas = frozenset () self.gammabars = frozenset () Защита __hash __ (самостоятельно): если self.gammas: возвращает хеш (self.gammas) Элиф self.gammabars: возвращает хеш (self.gammabars) Так что я хочу сказать: если self.gammas не пусто, то возвращает значение хэш из self.gammas или self.gammabars и т.д. . Но если теперь я начинаю свою программу, я получаю: TypeError: __hash__ метод должен возвращать целое число Так что вы знаете, как исправить это?
Armani42
1

голосов
1

ответ
36

Просмотры

Есть здесь простой способ преобразовать набор в массив? [Дубликат]

Этот вопрос уже есть ответ здесь: Как преобразовать набор в массив? 7 ответов я пытался: константный State = новый набор ([5, 10, 15, 20, 30, 45, 60]); пусть предустановленного = Object.assign ({}, состояние); console.log (предустановка) // {} и получил пустой объект. Кроме того, я попытался преобразовать состояние в строку, а также не удалось:. State.values ​​() toLocaleString () // «[объект Set итератора]» Или единственный способ для перебора Установить один за другим? Обновление: Это должно быть массив значений: [5, 10, 15, 20, 30, 45, 60] в качестве результата.
Max Kurtz
1

голосов
1

ответ
83

Просмотры

Можно ли создать проект documentset с использованием графа API?

До сих пор я не смог найти какую-либо информацию о том, как создать documentsets проект на моем Sharepoint среде с использованием API Graph. Я пробовал и Sharepoint на «Создать элемент» и OneDrive на «Создать папку». Sharepoint API говорит: «Файлы и папки должны быть добавлены только к DocumentLibrary через OneDrive API» OneDrive API говорит: «Либо„папка“или„файл“должны быть обеспечены, но не оба.» Как можно понять из ответов, кажется, ограничивается только имея возможности создать папку или файл. Это правильно? Есть ли способ, чтобы мутировать папку для документа, установленного с помощью другого вызова API? Я пытался добавить тип содержимого идентификатор различных запросов органов, в каждом случае не обеспечивая никакого дальнейшего решения. Надеюсь, что кто-то здесь знает возможное решение и может помочь мне. Спасибо!
Willem van Zantvoort
1

голосов
0

ответ
43

Просмотры

Как рассчитать пересечение множеств элементов между большим числом пользователей в базе данных NoSQL?

Я сталкиваюсь с проблемой эффективности, пытаясь вычислить пересечение множеств элементов между различными пользователями. Допустим, что пользователь, называется Боб, владеет различные элементы, которые он хотел бы торговать с другими предметами другими пользователями самостоятельно. Боб имеет инвентарь и список пожеланий. Теперь, если Боб хочет получить элемент, скажем, пункт А, от его желаний, он должен иметь возможность просматривать все пользователи, которые имеют пункт А в инвентаре. Логически, мы должны показывать только пользователям, которые имеют пункт А в инвентаре и в то же, имеют элементы в их список пожеланий, что Боб имеет в своем инвентаре. Мой подход был для хранения, для каждого элемента в списке желаний, пользователи, которые имеют этот пункт в инвентаре. Это будет структура в базе данных: wishlist_items / Itema / user1 user2 user3 Далее для отображения соответствующих пользователей (которые имеют пункт А в инвентаре и в том же, есть элементы в их списке пожеланий, что Боб имеет в своем инвентаре), я должен получить элементы в их инвентаризации и выполнить пересечение множеств с вишлист на Бобе. Затем сортировать пользователь по наибольшему количеству общих элементов между их инвентаризацией и желаниями Боба. Я считаю, что такой подход должен быть возможным для ограниченного числа пользователей под Itema, однако, окажется крайне неэффективен в масштабе, особенно, когда есть много вещей, а также. Есть ли эффективное решение, чтобы решить эту проблему? Обратите внимание, что я в настоящее время с помощью Firebase для хранения данных, и я не против использования различных технологических стеков. Я должен принести предметы в инвентаре и выполнить пересечение множеств с вишлист на Боба. Затем сортировать пользователь по наибольшему количеству общих элементов между их инвентаризацией и желаниями Боба. Я считаю, что такой подход должен быть возможным для ограниченного числа пользователей под Itema, однако, окажется крайне неэффективен в масштабе, особенно, когда есть много вещей, а также. Есть ли эффективное решение, чтобы решить эту проблему? Обратите внимание, что я в настоящее время с помощью Firebase для хранения данных, и я не против использования различных технологических стеков. Я должен принести предметы в инвентаре и выполнить пересечение множеств с вишлист на Боба. Затем сортировать пользователь по наибольшему количеству общих элементов между их инвентаризацией и желаниями Боба. Я считаю, что такой подход должен быть возможным для ограниченного числа пользователей под Itema, однако, окажется крайне неэффективен в масштабе, особенно, когда есть много вещей, а также. Есть ли эффективное решение, чтобы решить эту проблему? Обратите внимание, что я в настоящее время с помощью Firebase для хранения данных, и я не против использования различных технологических стеков. она окажется крайне неэффективна в масштабе, особенно, когда есть много вещей, а также. Есть ли эффективное решение, чтобы решить эту проблему? Обратите внимание, что я в настоящее время с помощью Firebase для хранения данных, и я не против использования различных технологических стеков. она окажется крайне неэффективна в масштабе, особенно, когда есть много вещей, а также. Есть ли эффективное решение, чтобы решить эту проблему? Обратите внимание, что я в настоящее время с помощью Firebase для хранения данных, и я не против использования различных технологических стеков.
Badie
1

голосов
0

ответ
394

Просмотры

Ошибка C ++: запрос члена ... который имеет типа неклассового

Я пытался смотреть на другие подобные вопросы, но все они, кажется, содержат ответы относительно особенность c11 я использую. При выполнении следующего кода я получаю сообщение об ошибке: Ошибка: запрос на член «тока» в «((МТМ :: MtmSet) это) -> МТМ :: MtmSet :: it.mtm :: MtmSet :: итератор :: operator- > ()», который является не-класса типа 'сопзЬ Int' IT-> ток = NULL; в некоторых частях моего файла MtmSet.h. Эти файлы я использую. Я действительно в убыток, поэтому я боюсь, что я не знаю, какая часть имеет отношение, но попытались опустить как можно больше. Линии ошибок помечены Жирный + подчеркнутый. main.cpp: #include "MtmSet.h" INT основных () {MtmSet установлен; возвращать 0; } MtmSet.h: #ifndef MTM4_SET_H #define MTM4_SET_H # include Пространство имен MTM {шаблон класса MtmSet {/ ** * Узел в множестве * / класса Node {тип данных; Узел * следующий; общественности: Тип и GetData () {возвращение данных; } Узел GetNext () {вернуться * следующий; } Узел () = по умолчанию; Явный Узел (тип данных): данные (данные), следующий (NULL) {}}; Узел * первый; общественности: // Переслать объявление класса const_iterator; / ** * итератор для Set * / класс итератора {Node * тока; общественности: / ** * Пустой конструктор. Не должно быть разыменовываются. * То же, что MtmSet :: конец () * / итератор () = по умолчанию; / ** * Конструктор Set итератора * @param узел Узел итератор указывает на * / явного итератора (Node * узел) {текущего узла =; } / ** * Конструктор копирования * @param это Итератор для копирования * / итератор (константный итератор & его) {* это = это; } / ** * Destructor * / ~ итератор () = по умолчанию; итератор & оператор = (Const итератор & RHS) {тока = rhs.current; вернуться * это; } Тип конструкции & Const оператор * () {вернуть current-> GetData (); } Const Тип оператора * -> () сопзЬ {вернуть current-> GetData (); } Итератора и оператор ++ () {* ток = current-> GetNext (); вернуться * это; } Итератор оператор ++ (интермедиат) {итератора его = * это; * Ток = current-> GetNext (); верни это; } Оператор BOOL == (Const const_iterator & RHS) сопзЬ {если (текущий == rhs.current) {возвращает истину; } Вернуться ложным; } BOOL оператор = (Const const_iterator & RHS) сопзЬ {вернуть (текущий == rhs.current)!; } Друг класса const_iterator; }; итератор его; const_iterator const_it; / ** * Пустой конструктор * Создает пустой набор * / MtmSet (): первый (NULL) {Первая ошибка на IT-> ток = NULL, и const_it-> ток = NULL ниже, в то время как все остальные строки возвращают ту же ошибку: IT-> ток = NULL; const_it-> ток = NULL; } / ** * Конструктор копирования * @param установить комплект для копирования * / MtmSet (константный MtmSet & набор) {} / ** * Destructor * Бесплатно все выделенной памяти в комплекте. * / ~ MtmSet () = по умолчанию; итератор вставка (Тип конструкции & эль) {Узел * а = новый узел (эль); если (первый == NULL) {первый = а; const_it-> = а ток; IT-> = а ток; верни это; } Если (содержит (эль)) {вернуть его; } В то время как (it-> current-> следующий! = NULL) {it-> ток = it-> current-> следующая; } IT-> current-> следующая = а; it-> ток = it-> current-> следующая; верни это; } Итератор находка (Тип конструкции & эль) {} const_iterator найти (Тип конструкции & эль) сопзЬ {IT-> ток = первый; в то время как (it-> ток! = NULL) {если (it-> current-> данные == эль) {вернуть его; }} Возвращают NULL; } BOOL содержит (Тип конструкции & эль) сопзИте {если (найти (эль)) {возвращает истину; } Вернуться ложным; }}; } // пространство имен MTM #endif // MTM4_SET_H Любая помощь будет принята с благодарностью.
Osmosis Johns
1

голосов
1

ответ
35

Просмотры

Python 3.5 Для петель Установить метод помощи обратного

Я новичок в Python, и мне нужна помощь. У меня есть опыт работы с C / C ++, но не питона. Я просто нужна помощь. Я не понимаю, что эти строки делают. S = {-4, 4, -3, 3, -2, 2, -1, 1, 0}; {Х для й в S, если х> = 0} Я знаю, что S представляет собой набор. Я знаю, что мы пробегаем по множеству S, но то, что я не undersatand является то, что является «х», прежде чем делать для цикла? и когда я использую в печать функции я получаю ошибку говоря: NameError: имя «х» не определен Спасибо!
lauro199471
1

голосов
1

ответ
106

Просмотры

Борясь с внедрением Набор связанного списка

Моя задача состоит в том, чтобы реализовать комплекс с связанным списком. Я создал связанный список довольно быстро, а затем начал строить множество. Я боролся немного с заданными операциями (объединение / пересечение / разница), но после реализации я попытался сделать метод драйвера и теперь я получаю ошибку сегм с содержит / добавить. Я не могу должным образом проверить свои операции в качестве результата. Я не понимаю, почему я получаю эту ошибку. Я с видом что-то ... любая помощь будет оценена. класс Linklist.h ListNode {частное: ListNode * пред; ListNode * следующий; ИНТ данных; общественности: ListNode () {= предыдущая следующая = NULL; данные = 0;} ListNode (интермедиат д, ListNode * р, ListNode * п) {данные = д; пред = р; следующая = п; } Список друг класс; }; класс Список {частное: ListNode * голова; ListNode * хвост; общественности: Список () {голова = хвост = NULL; } ~ List (); BOOL IsEmpty () {возвращение головы == NULL; } BOOL содержит значение (целое); аннулированию addToHead (INT значение); аннулированию addToTail (INT значение); INT removeHead (); INT removeTail (); INT RemoveAt (INT индекс); BOOL удалить (целое значение); INT в (Int индекса); ИНТ valueOf (Const ListNode * эль); Const ListNode * GetNext (Const ListNode * узел); Const ListNode * getPrevious (Const ListNode * узел); Const ListNode * getHead () {возвращение головы; } Const ListNode * getTail () {возвращение хвоста; } Недействительной печати (); }; Список :: ~ Список () {в то время как (IsEmpty (!)) RemoveTail (); } Список BOOL :: содержит (целое значение) {ListNode * TMP = голова; // данные = значение) TMP = tmp-> следующая!; вернуть TMP! = NULL; } Аннулируются Список :: addToHead (целое значение) {если (IsEmpty ()) {голова = хвост = новый ListNode (значение, NULL, NULL); } Еще {голова = новый ListNode (значение, NULL, то головка); head-> next-> пред = головы; }} Список пустот :: addToTail (целое значение) {если (IsEmpty ()) {голова = хвост = новый ListNode (значение, NULL, NULL); } Еще {хвост = новый ListNode (значение, хвост, NULL); tail-> prev-> следующая = хвост; }} INT Список :: removeHead () {INT значение = head-> данные; если (голова == хвост) {удалить хвост; голова = хвост = NULL; } Еще {голова = head-> следующая; удалить head-> пред; head-> пред = NULL; } Возвращаемое значение; } Список ИНТ :: removeTail () {INT значение = head-> данные; если (голова == хвост) {удалить хвост; голова = хвост = NULL; } Еще {хвост = tail-> пред; удалить tail-> следующая; tail-> следующая = NULL; } Возвращаемое значение; } INT Список :: RemoveAt (интермедиат индекс) {// Удаляем узел по индексу. Возвращает значение INT, содержащийся в // ныне удаленный узел. Выход из программы, если инвалид ListNode * температура = голова; INT = 0; если (индекс == 0) {removeHead (); } В то время как (! = NULL, темп && я <индекс-1) {температура = TEMP-> следующая; я ++; } Если (Temp == NULL || Temp -> следующая == NULL) {выход (1); } Еще {ListNode * temp2 = TEMP-> следующая; TEMP-> следующая = TEMP-> next-> рядом; temp2-> следующая = NULL; удалить temp2; }} BOOL Список :: удалить (целое значение) {// Удаляет унаследованное значение, если оно содержится в списке. Возвращает истину, если значение // было найдено и удалить, вернуть ложь, если никаких изменений не было внесено в список ListNode * пред = головы; ListNode * температура = head-> следующая; если (prev-> значение == данных) {removeHead (); } Еще {в то время как (температура = NULL && TEMP-> данные = значение!) {Пред = темп; Темп = TEMP-> следующая; } Если (TEMP == NULL) {соиЬ следующий; // отвязать узел, удалить удалить темп; // удалить узел}}} INT Список :: в (Int индекса) {// Возвращает значение INT, содержащийся в узле на поставленном индекс. Выход из программы, если // недействительный индекс обеспечивается ListNode * температура = голова; для (INT = 1; г <индекс; я ++) {если (темп -> следующая == NULL) {выход (1); } Темп = TEMP-> следующая; } Вернуть valueOf (TEMP); } Список ИНТ :: valueOf (Const ListNode * элем) {вернуться elem-> данные; } Const ListNode * Список :: GetNext (Const ListNode * узел) {вернуться node-> следующая; } Const ListNode * Список :: getPrevious (Const ListNode * узел) {вернуться node-> пред; } Аннулируются Список :: печать () {ListNode * TMP = голова; если (TMP = NULL) {делать {если (TMP = NULL) {данные COUT рядом; }} В то время как (TMP! = NULL); } СоиЬ содержит (значение)) {вернуться ложным; } Еще {list-> addToHead (значение); set_size ++; возвращает истину; }} BOOL Set :: добавить (INT значения) {// Возвращает логическое значение, представляющее, если предоставленное значение INT успешно // добавляется в список не позволяет дублировать, если (! Содержит (значение)) {list-> addToTail ( значение);} еще {вернуться ложным;}} BOOL Set :: удалить (INT значение) {вернуть list-> удалить (значение); } Аннулируются Set :: ясно () {// Эта функция должна назначить от 0 до set_size, и удаление списка. set_size = 0; удаление списка; } Установить * Установить :: set_union (Set & s) {// Создает и возвращает указатель Set, который содержит множество объединение // ссылающегося объекта Set и второй набор объект передается в функцию Set * Temp = новый набор (); для (целое т = 1; Тэдд (s.list-> в (T)); обратный темп;} Набор * Установить :: пересечение (набор & ы) {// Создает и возвращает указатель Set, который содержит пересечение множеств из // вызова Установить объект и второй объект набора передается в функцию Set * темп = новый Set ();. для (INT I = 0; я <set_size; я ++) {если (s.contains (list-> в (я))) {TEMP-> добавить (list-> в (I)); }} Температуры возвращаемого теплоносителя; } Установить * Установить :: разность (Установить & s) {// Создает и возвращает указатель Set, который содержит разность множеств между вызывающей // Установить объект и второй набор объекта, переданного в функцию. // объект вызова Set следует считать набор, который вычитается из (// ссылающегося на Set - Параметр Set) Установить * темп = новый Set (); для (INT I = 0; я <set_size; я ++) {если (s.contains (list-> в (я))) {TEMP-> добавить (list-> в (I)); }} Для (INT I = 0; я <set_size; я ++) {если (TEMP-> содержит (list-> в (я))) {s.remove (list-> в (I)); }} Температуры возвращаемого теплоносителя; } Аннулируются Set :: Печать () {// TO DO --- Уже есть печать в списке} ИНТ основной () {INT выбор, элемент, size1, size2; соиЬ> size1; Набор set1; соиЬ> size2; Набор set2; соиЬ
Ayleids
1

голосов
1

ответ
221

Просмотры

Как вставить словарь в Набор в swift3?

У меня есть простой словарь, который определяется как: пусть DIC = [ «ключ»: «значение»] Я хочу, чтобы добавить «ДИК» в этой карте: вар карта = Set () // вар карта = Set () _ = карта. вставить (DIC, как NSDictionary) Я не хочу использовать 'DIC, как NSDictionary. Но я понятия не имею, что, как я могу выполнить это действие я искал много в Интернете, но ничего не помогает мне.
Ycong
1

голосов
1

ответ
43

Просмотры

Replacement in a list with assigning a weight

Мой вопрос состоит из двух частей: во-первых, предположим, что у нас есть список элементов: L = [ «x1», «x2», «x3», «x4»] Как вы присвоить вес каждому элементу? например, в самом начале, все элементы имеют вес один. Моя вторая часть вопроса взять два элемента случайных смешивать их и сделать новый элемент. Таким образом, новый список будет: L = [ 'x1', 'x2', 'x3', 'x4', 'x5'], где 'x5' теперь имеет вес два, как: 'x5' = 'x1' + 'x3 ' например. То, что я до сих пор Защиту randMerge (л: список, посчитайте: INT) -> Список: возвращение л + [random.sample (л, к = счет)] Защиту расплющить (d): возвращение [I при Ь в [[ с], если не isinstance (с, список) еще сплющивающиеся (с) для с в D] для г в б] NUM = 2 ALIST = [ 'x1', 'x2', 'x3', 'x4'] разреш = [ ] NewList = ALIST [:
1

голосов
0

ответ
27

Просмотры

Javascript установить свойство стиля перезапись

(Функция (конструктор) {если (конструктор && constructor.prototype) {// Custom - styleMe Object.defineProperty (constructor.prototype, 'styleMe', {получаем: функция () {если (это == NULL) возвращает {}; возвращение (? window.getComputedStyle getComputedStyle (это, нуль): this.currentStyle);}, набор: функция (ключ, новое_значение) {this.styleMe.key = новое_значение;}});}}) (window.Node || window.Element); Я могу легко получить значение стиля, как: вар MarginTop = document.getElementById ( "MyId") styleMe.marginTop;. Но, как установить значение? Это не работает: document.getElementById ( "MyId") styleMe.marginTop = "30px";.
iMatoria
1

голосов
0

ответ
72

Просмотры

Обновление сертификатов во всех случаях масштабного набора VM (услуга ткань)

Я использую Service Fabric в Azure и имею масштабный набор Azure VM, которая инициализированный с помощью шаблона и извлекает все необходимые сертификаты от Azure Key Vault и устанавливает сертификат в хранилище сертификатов экземпляров. Некоторые сертификаты должны быть возобновлены periodicaly, поэтому я заменить сертификат в Key Vault с новым сертификатом. Но как я могу обновить существующие экземпляры с новыми сертификатами? Нужно ли мне повторно изображение всех экземпляров или есть лучший способ обновить сертификаты?
Ramon de Klein
1

голосов
0

ответ
126

Просмотры

Как использовать FIND_IN_SET в JPA

Как я могу использовать FIND_IN_SET в JPA? Мне нужно, чтобы достичь как этот SQL - выберите * от учителя, где FIND_IN_SET ( «5», deptIds) и идентификатор = 101, где deptIds имеют разделенные запятой идентификаторами (я знаю, что это плохая идея, но наследство). Для этого я была опробована с использованием критериев но не нашли каких-либо ограничений, которые могут выполнить FIND_IN_SET. Примечание - необходимо возможное решение с критериями и ограничениями
The Hunter
1

голосов
0

ответ
43

Просмотры

Извлечение конкретного объекта из словаря питона путем сопоставления с другим объектом, который сравнивает равным

Это скорее теоретический вопрос, чем практический. Предположим, у меня есть Python набор S, заполненные экземплярами некоторого класса C, где C имеет некоторые пользовательские равенства отношения. У меня также есть на руках экземпляр х С, и я знаю, что есть объект х «в х, что х == х, хотя ид (х)! = Идентификатор (х»). Как я могу получить ссылку на объект х '? Вещи я уже пробовал: s & {х} / {х} & s. В обоих случаях, выражение принимает значение объекта х. В источнике Python для пересечения множеств, если множества пересекаются разные размеры, набор результатов берут свои объекты из меньшего набора. s.pop (), который не дает мне контроль над которой удаляется элемент. Как мотивации, s может быть кэш объектов. Вместо того, чтобы хранить повторяющиеся экземпляры класса в памяти, мы бы скорее повторно использовать экземпляр мы уже создали. Таким образом, мы создаем потенциально-дубликат экземпляра, проверьте, если мы создали идентичный экземпляр раньше, и если да, то использовать этот экземпляр вместо. Я знаю, что я могу выполнить подобное поведение со словарем, но я определенно знать, может ли это быть сделано только с заданным интерфейсом.
D G
1

голосов
0

ответ
24

Просмотры

Trigger функции при установке свойства объекта?

Есть ли способ, чтобы вызвать функцию при установке свойства объекта? Функция Вектор (х, у, г) {this.x = кватернионы (х); this.y = у; this.z = г; } Функция Кватернионные (х, у, г, ш) {this.x = х; this.y = у; this.z = г; this.w = ш; }
techdog
1

голосов
5

ответ
65

Просмотры

Find the first Unique Non-anagram strings in array (JS)

Я пытаюсь найти первую уникальную строку в массиве, игнорируя все другие анаграммы, например: пусть слова = [ «ворс», «учителей», «обманщиков», «пан», «ухо», «эпохи», «га» ]; выход = ворс учителей уха или пусть слова = [ «крыса», «битуминозные», «искусство»]; Выход крыса я застрял здесь пусть множество = новый Set (); пусть слова = пусть слова = [ 'ворс', 'учителей', 'обманщиков', 'пан', 'ухо', 'эпохи', 'га'] пусть карта = новый Map (); для (пусть слово слов) {пусть отсортированный = word.toLowerCase () раскол ( '') своего рода () присоединиться.. ( ''); map.set (сортируют, слово); Set.add (отсортированных)} пусть обр = Array.from (комплект) для (пусть INX = 0; INX <words.length; INX ++) {arr.push ( '0')} console.log (ARR); console.log (слова); Функция isAnagram (s1, s2) {вернуться s1.split ( "") === s2.split ( "") ") своего рода () присоединиться к (.." ") своего рода () присоединиться к (.."; } Пусть результат = []; для (пусть I = 0; г <words.length; я ++) {если () result.push (слова [I])} console.log (результат);
Simba
1

голосов
2

ответ
85

Просмотры

Удалить весь из Redis H Установите (Jedis), возникают проблемы, так как он просто не будет удалять

pipe.hset (UUID, "имя", "Archie"); Это пример того, как я использую H Установите. Есть около 10 других атрибутов (имя, возраст и т.д.). Я пытаюсь удалить весь H Установите, например, удалить UUID, так что больше не является ключевым (это ключ правильный термин?). Я попытался удалить каждый элемент по отдельности через трубопровод; для (String S: profileData) {pipe.hdel ( "профиль @" + uuid.toString (), s); } Но, во-первых, это имеет временную сложность O (п) и поэтому может быть более эффективным, а во-вторых она на самом деле не работает для меня, так как ключи все еще присутствуют (думаю, что это может быть моя собственная ошибка кодирования). Я видел вопросы, просящие функции hdelall, и я знаю, что один не существует. Я также попытался с помощью, pipe.del (UUID); Но это не делает ничего - так, очевидно, я использую это неправильно. Я предполагал, что это будет просто удалить все, но H Установите не, он должен быть использован для удаления одного значения вместо этого? Я не уверен. Так что мой вопрос сводится к тому, Как эффективно удалить все из Redis H Установите, используя Jedis. Спасибо.
Archie
1

голосов
1

ответ
50

Просмотры

Azure VM шкалы набор, масштабирование профиля пределы минимального экземпляра, означающей

Я создал шкалу Vm набора с масштабированием профиля, как показано ниже - Но если я пойду и удалять экземпляры в VM scaleset она не масштабируется его обратно 2. PFB скриншота, почему это происходит, это ожидаемое поведение, если да, то есть то есть минимальное количество экземпляров?
ankush
1

голосов
0

ответ
33

Просмотры

Является ли получение какой-либо элемент с итератора (). Следующий () из HashSet медленнее, чем получать их от LinkedHashSet?

Я прочитал это предложение на решение Leetcode: Я изменил код, заменив HashSet с LinkedHashSet, потому что set.iterator () может быть дорогостоящим, когда число слишком много дубликатов. Использование LinkedHashSet можно рассматривать как O (1), если только получить первый элемент для удаления. Как вы можете видеть в комментариях ниже решения, некоторые люди не согласны с этим предложением. Верно ли, что получение случайного элемента из набора, используя set.iterator (). Следующий () быстрее для LinkedHashSet чем для HashSet и почему? У меня было немного посмотреть на реализацию, это потому, что итератор HashSet просматривать массив подкладочный, чтобы найти непустой ячейки?
Ricola
1

голосов
0

ответ
36

Просмотры

Сбой сервера мин и макс версии проволоки несовместимы (6,6) с клиентом мин проволоки версии (0,5)»,

хотим реализовать рабовладелец два Ubuntu машины, имеющие же mongoshell версии 3.4.19, но дает ошибку «не удались с сервером мин и максами версии провода несовместимы (6,6) с клиентом мин проводного исполнения (0,5)»,»в то время как Rs. добавить ( "IP: порт")
Uday Magdum
1

голосов
0

ответ
7

Просмотры

Одноэлементная набор медленнее, чем больший набор

Может кто-нибудь помочь понять, почему это происходит? Время, необходимое для преобразования набора в список, как и ожидалось, пропорционально его длине. За исключением случаев, когда его длина равна 1. Тогда, это медленнее, чем 2,3, и 4 элементов. Для того, чтобы demostrate, выполнив следующие действия в IPython: для I в диапазоне (1, 7): S = множество (диапазон (я)) печать ( '% S элементов:' % I) список% timeit (ы) 1 элементов: 1000000 петли , лучший из 3: 187 нса на петлю 2-х элементы: 10000000 петель, лучшие из 3: 170 нса в петлю 3 элементов: 10000000 петель, лучшие из 3: 174 нса на петлю 4 элементов: 10000000 петель, лучше всего из 3: 179 нса на петля 5 элементов: 10000000 петли, лучшие из 3: 182 нс в контуре 6 элементов: 1000000 петли, лучшие из 3: 202 нс на петле я использую python2.7.
shx2
1

голосов
0

ответ
36

Просмотры

How to convert Stack based instructions to Register based

Есть ли способ, чтобы преобразовать вышеупомянутые инструкции на основе стеки в инструкцию на основе регистров, предусмотренной у меня есть доступ к неограниченному количеству регистров. Я знаю только об одном инструменте, который делает это, мы знаем, что JVM является стек на основе, но Dalvik VM является на основе регистров. Когда мы пишем код в Java, файлы классы содержат инструкции стеки на основе и инструмент йха преобразует инструкцию стеки на основе регистрировать инструкции на основе так, что она может работать в Dalvik VM. Так что, скорее всего, там может быть алгоритм, который где-то я пропустил. Также может существовать ребро может где стек может динамически увеличиваться и уменьшаться (что будет принято во время выполнения), в этом случае было бы невозможно преобразовать инструкции на основе стека в регистр на основе. Однако один инструмент делает это. Может кто-то мне точку в правильном направлении.
Dean
1

голосов
2

ответ
44

Просмотры

Невозможно создать «набор» аксессор для словаря

Я был первоначально возникла проблема в моем коде, в котором я не смог «добавить» элемент в список объектов. После просмотра объекта списка, однако, я понял, что это только содержало «получить», а не «набор». Таким образом, я пытаюсь создать набор аксессор, но у меня проблемы: Вот мой исходный код, чтобы добавить элемент в список объектов. В настоящее время, ничего не добавляется: ClientCompany clientCompany = новый ClientCompany (); LocationData urlData = новый LocationData (); Расположение расположение = urlData.LocationGet (1129); // жёстко 1129 в течение теперь clientCompany.Locations.Add (место); // «место» не является пустым, однако ничего добавляется к расположениям объекта возврата clientCompany; //clientCompany.Locations.Count = 0 (он должен быть равен 1) А вот текущая часть класса ClientCompany I» м возникли проблемы с: общественным словарем LocationsDict {получить; задавать; } // Список свойства Публичный список Места {получить {вернуться LocationsDict.Values.ToList (); }} Я попытался включая сеттера, но я получаю следующее сообщение об ошибке: Не удается преобразовать тип источника Systems.Collections.Generic.List «целевому типу» Systems.Collections.Generic.Dictionary получить {вернуться LocationsDict.Values.ToList (); } Множество {LocationsDict = значение; } Любая идея, что я делаю неправильно? Спасибо К списку(); } Множество {LocationsDict = значение; } Любая идея, что я делаю неправильно? Спасибо К списку(); } Множество {LocationsDict = значение; } Любая идея, что я делаю неправильно? Спасибо
goalie35
1

голосов
1

ответ
881

Просмотры

Как я могу получить список всех тегов, используемых в конкретном наборе FLICKR

с FLICKR API я хочу узнать все теги, используемые в одном конкретном наборе фотографий. я знаю, что это легко найти все мои тег (через flickr.tags.getListUserPopular), но я не знаю простой способ ограничить тег для тех, которые используются в определенном наборе. проверять каждый тег против Teh фотографий в наборе слишком медленно.
halloleo
0

голосов
2

ответ
30

Просмотры
1

голосов
2

ответ
1.7k

Просмотры

вопросы кодирования символов при генерации MD5 хеш кросс-платформенный

Это общий вопрос о кодировке символов при использовании библиотеки MD5 на различных языках. Моя забота: предположим, я сгенерировать MD5 хэш с помощью встроенного объекта строки Python, например: сообщение = «привет мир» м = md5 () m.update (сообщение) Тогда я беру шестигранную версию этого хэша MD5 с помощью: м .hexdigest () и отправить сообщение & MD5 хэш с помощью сети, скажем, сообщение JMS или запрос HTTP. Теперь я получаю это сообщение в программе Java в виде нативного строки Java, вместе с контрольной суммой. Тогда я сгенерировать MD5 хэш с помощью Java, как это (с использованием библиотеки Commons Codec): String = md5 org.apache.commons.codec.digest.DigestUtils.DigestUtils.md5Hex (s) У меня такое ощущение, что это неправильно, потому что у меня есть не указан характер encodng на обоих концах. Таким образом, исходный хэш будет основываться на байтах версии Python строки; Java-один будет основан на байтах версии Java строк, эти два байт последовательности часто не может быть тем же самым - это правильно? Так на самом деле мне нужно указать «UTF-8» или что-то на обоих концах правильно? (Я на самом деле получить прерывистую ошибку в моем коде, где контрольная сумма MD5 терпит неудачу, и я подозреваю, что это и есть причина. - а потому, что прерывистые, это трудно сказать, если изменение этого фиксирует его или нет) Спасибо! и я подозреваю, что это причина, - а потому, что прерывистый, это трудно сказать, если изменение этого фиксирует его или нет. ) Спасибо! и я подозреваю, что это причина, - а потому, что прерывистый, это трудно сказать, если изменение этого фиксирует его или нет. ) Спасибо!
John B
1

голосов
1

ответ
334

Просмотры

Распределение элементов из «х» множества растений в «у» корзины одинаково

Я нужны идеи о алгоритме распределения растений в группах. У меня есть, скажем, 5, наборы растений и каждый набор изображает определенное свойство, например, множество А = {множество всех растений, зеленого цвета} SETB = {множество всех растений красного цвета} SETC = {все растения, которые корни также} setD = {плоды} Sète = [цветы} растение может быть членом более чем одного набора. Общее количество растений «п» и у меня есть «м» корзина. Что необходимо, чтобы распределить все эти «N» растения в «м» корзинах так, что для каждого набора, все корзины имеют равное (или почти одинаковое) число растений из этого набора. И здесь возникает проблема. Если я начну распределение в «м» корзины один за другим для каждого множества, то в большинстве сценариев, последнее распределение будет единственным допустимым, т.е. корзины будут иметь равномерное распределение цветов в них, но не обязательно плодах, корни или цветы и т.д. Как распределить все эти одинаково? Есть идеи?
s khan
1

голосов
1

ответ
559

Просмотры

поле SET индексирование

У меня есть две сущности А и В. Они связаны с многие ко многим отношений. Субъект А может быть связано до 100 В сущностями. Компания Б может быть связано до 10000 субъектов A. Мне нужно быстрый способ, чтобы выбрать, например, 30 субъектов А, которые имеют отношения с указанными лицами B, процеживают и отсортированных по различным признакам. Вот как я вижу идеальное решения: Я положил всю информацию я знаю о лицах, в то числе их отношений с B субъектами в единый ряд (специальную таблицу с полем SET), затем добавить все необходимые индексы. Проблема заключается в том, что вы не можете использовать индекс при запросе на поле SET. Что я должен делать? Я могу заменить базу данных что-то другое, если это поможет. UPDATE: Я сожалею. Похоже, я забыл упомянуть одну важную деталь. Мне нужно, чтобы найти те элементы A, которые имеют отношения с входом B с ID = 1 и с вхождением B с идентификатором = 2 в то же время. Так что, если с помощью объединений я буду иметь что-то подобное: SELECT A.id, COUNT (*), как УНТ в INNER JOIN А.Б. a.id = ab.a_id WHERE ab.b_id В (1,2) GROUP BY а. идентификатор ORDER BY NULL, имеющего CNT = 2, который дает мне очень плохо Perfomance
Dienow
1

голосов
2

ответ
1.1k

Просмотры

Mysql SET NAMES UTF8 - как избавиться?

В очень занят PHP скрипт у нас есть вызов в начале «Установить имена utf8» ставящая набор символов, в котором MySQL должен интерпретировать и передавать данные от сервера к клиенту. http://dev.mysql.com/doc/refman/5.0/en/charset-applications.html Я хочу, чтобы избавиться от него, так что я установить по умолчанию-символьный набор = utf8 В нашем файловом сервере ини. (Ссылка выше) Установка, кажется, работает, так как соответствующие параметры сервера являются: «character_set_client», «utf8» «character_set_connection», «utf8» «character_set_database», «latin1» «character_set_filesystem», «Бинарные» «character_set_results», 'utf8' 'character_set_server', 'latin1' 'character_set_system', 'utf8' Но после этого изменения и комментирование набора имен utf8 вызова все еще данные начинают выходить искажены. Пожалуйста, порекомендуйте....
Nir
1

голосов
2

ответ
762

Просмотры

How to implement std::set or std::hash_set to filter the duplicated item in an array list?

Given the below scenario, I'm having a list of item which might be having some duplicated item. I would like to filter the item, to print the only unique item. Instead of duplicating a list which remove the duplicated item, I tried to insert them into std::set and std::hash_set. Nevertheless, I found no useful example to perform the operation. Hence I hope to seek your advice on the following code: #include //--> A struct to store software name and version typedef struct tagSWVERStruct{ TCHAR szSWName[255]; TCHAR szVersion[255]; }SWVERSIONSTRUCT, *LPSWVERSIONSTRUCT; //--> A list of struct to store software name and version typedef std::list LISTSWVERSION, *PLISTSWVERSION; void main() { LISTSWVERSION swList; SWVERSIONSTRUCT svSW1, svSW2, svSW3, svSW4; CString szVersion, szName; //Assign value _tcscpy_s(svSW1.szSWName, _T("Adapter 1")); _tcscpy_s(svSW2.szSWName, _T("Adapter 2")); _tcscpy_s(svSW3.szSWName, _T("Adapter 1")); _tcscpy_s(svSW4.szSWName, _T("Adapter 3")); _tcscpy_s(svSW1.szVersion, _T("1.0.0")); _tcscpy_s(svSW2.szVersion, _T("2.0.0")); _tcscpy_s(svSW3.szVersion, _T("1.0.0")); _tcscpy_s(svSW4.szVersion, _T("3.0.0")); swList.push_back(svSW1); swList.push_back(svSW2); swList.push_back(svSW3); swList.push_back(svSW4); //print all the item out LISTSWVERSION::iterator it = swList.begin(); for(; it!=swList.end(); ++it){ _tprintf(_T("%s version = %s\n"), (*it).szSWName, (*it).szVersion); } } /******* Output: Adapter 1 version = 1.0.0 Adapter 2 version = 2.0.0 Adapter 1 version = 1.0.0 Adapter 3 version = 3.0.0 Expected Output: Adapter 1 version = 1.0.0 Adapter 2 version = 2.0.0 Adapter 3 version = 3.0.0 ********/
wengseng
1

голосов
1

ответ
692

Просмотры

Интенсиональное и экстенсиональное определение множеств

Я искал экстенсиональном определение для следующего набора: E: = {т | м подмножество {а, б, в, г} и | м | = 2} Моя идея заключается в Е: = {{а, Ь}, {а, с}, {а, д}, {Ь, с}, {B, D}, {C, D}, {а, а }, {Ь, Ь}, {C, C}, {d, d}} любые идеи?
Artjom Zabelin
1

голосов
2

ответ
554

Просмотры

WPF - Выставьте Bindable ReadOnly Dependency Property и добавьте внутренне значения

Вот мой код: открытые статические чтения DependencyPropertyKey ItemsSourceKey = DependencyProperty.RegisterReadOnly ( "ItemsSource", TypeOf (Список), TypeOf (MyTextBox), нуль); общественности статической чтения DependencyProperty ItemsSourceProperty = ItemsSourceKey.DependencyProperty; Публичный список ItemsSource {получить {возвращение (List) ПолучитьЗначение (ItemsSourceProperty); }} У меня есть 2 проблемы здесь: 1.) Так как я сделал это DependencyPropertyKey как предложено на MSDN я не могу видеть в малейшей в ItemsSource в моем XAML. 2.) пользователь должен иметь возможность связываться с Перечнем получать текущие строки в элементе управления ItemsSource из MyTextBox. Внутренне внутри MyTextBox Я хочу, чтобы добавить строки к ItemsSource, но я не могу создать экземпляр списка и назначить его ItemsSource, как это ReadOnly ... Как я могу решить это? Я хочу, связываемого только для чтения свойства, которому я могу установить данные внутри. Может быть, вы спросите, почему я не использую .text собственности связывать там. Ну пользователь вводит данные, изменить его и хочу вернуть его изменить в списке ...
Pascal
1

голосов
1

ответ
364

Просмотры

How to group N items?

Я работаю над проблемой, набор разделов и нужен способ, чтобы определить все комбинации неупорядоченных размеров ковша. Дано N элементов и ровно M групп, найти все комбинации группы размеров, таких, что сумма размеров группы представляет собой N. Примечание: Размер ковша не может быть 0. Например, предположим, 6 элементы должны быть помещены в 3 ведра. Решение Я ищу это: ([1,2,3], [1,1,4], [2,2,2]) Для того, чтобы отобразить их в равной степени, я использую функцию карты следующим образом: @grouping = отображение {Int (($ пунктов + $ _) / $ групп)} 0 .. $ группы-1; Для того, чтобы получить все комбинации, я имею в виду какой-то рекурсивной функции, где каждый уровень рекурсии N находит возможные значения для элементов N в массиве. Приемлемые значения каждого уровень может Вкладыш> = previousLevel. Это своего рода, что я имею в виду, но там должен быть лучший способ сделать это .... суб GetList ($$ @) {мой $ ITEMCOUNT = сдвиг; мой $ groupCount = сдвиг; мой @currentArray = @_; мой $ positionToFill = @currentArray; если ($ positionToFill == 0) {мой $ MinValue = 1; } Еще {мой $ MinValue = currentArray [$ positionToFill-1]; } Мой $ currentSum = сумма (@currentArray); вернуться UNDEF если $ currentSum + $ MinValue> = $ элементов; мои @possibleCombinations = (); для (мой $ я = $ MinValue; $ я <$ пунктов - $ currentSum; $ я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} мой @currentArray = @_; мой $ positionToFill = @currentArray; если ($ positionToFill == 0) {мой $ MinValue = 1; } Еще {мой $ MinValue = currentArray [$ positionToFill-1]; } Мой $ currentSum = сумма (@currentArray); вернуться UNDEF если $ currentSum + $ MinValue> = $ элементов; мои @possibleCombinations = (); для (мой $ я = $ MinValue; $ я <$ пунктов - $ currentSum; $ я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} мой @currentArray = @_; мой $ positionToFill = @currentArray; если ($ positionToFill == 0) {мой $ MinValue = 1; } Еще {мой $ MinValue = currentArray [$ positionToFill-1]; } Мой $ currentSum = сумма (@currentArray); вернуться UNDEF если $ currentSum + $ MinValue> = $ элементов; мои @possibleCombinations = (); для (мой $ я = $ MinValue; $ я <$ пунктов - $ currentSum; $ я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} } Еще {мой $ MinValue = currentArray [$ positionToFill-1]; } Мой $ currentSum = сумма (@currentArray); вернуться UNDEF если $ currentSum + $ MinValue> = $ элементов; мои @possibleCombinations = (); для (мой $ я = $ MinValue; $ я <$ пунктов - $ currentSum; $ я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} } Еще {мой $ MinValue = currentArray [$ positionToFill-1]; } Мой $ currentSum = сумма (@currentArray); вернуться UNDEF если $ currentSum + $ MinValue> = $ элементов; мои @possibleCombinations = (); для (мой $ я = $ MinValue; $ я <$ пунктов - $ currentSum; $ я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} $ Я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;} $ Я ++) {$ currentArray [$ positionToFill] = $ я; если ($ positionToFill == $ groupCount-1) {нажимные (@possibleCombinations, \ @currentArray)} еще {кнопочных (@possibleCombinations, GetList ($ ITEMCOUNT, $ groupCount, @currentArray);}} вернуть @currentArray;}
Jonathan
1

голосов
1

ответ
2k

Просмотры

Разрешение зависимостей заголовка в setup.py

У меня возникли трудности при установке модуля Python на Windows. Есть зависимостей с Libpcap и WinPCap библиотек. При попытке запуска «setup.py» Я получаю фатальные ошибки и сценарий прерывается, как ниже один не удается открыть файл включать: «pcap.h»: Нет такого файла или каталога, я скачал исходные файлы и включить их в моей PATH переменной окружения но они, похоже, не будет решена. Я в состоянии систематически находить и перемещать файлы в ожидаемой структуру каталогов, как «pcap.h» от ошибки выше. Однако было бы гораздо легче иметь ссылку скрипт правильные библиотеки, поэтому я не придется взломать его для моей коробки. Я предполагаю, что мне нужно изменить в части кода ниже в setup.py BPF = Extension (имя = «BPF», источники = [ «шт / BPF / bpf.pyx»],
amadib
1

голосов
2

ответ
162

Просмотры

AMD Open64: Оптимизированные математические функции

Имеют ли Open64 есть что-то эквивалентное Intel короткого вектор математических операций библиотеки. Спасибо.
pic11
1

голосов
2

ответ
191

Просмотры

Efficient data structure for my particular problem

У меня есть очереди приоритета, который содержит отсортированный матрицу А вместе с его (строка, столбец) место в матрице. Таким образом, у меня есть структура данных «queue_element», которая имеет три поля, queue_element.value, queue_element.row и queue_element.col мне нужно обрабатывать очереди приоритета и для каждого элемента, который я поп, мне нужно вернуться к месту расположения A ( строка, столбец) и устранить все элементы, лежащие на одной и той же строке # и Col #. Так, например, если в верхней части очереди приоритетов содержит element.value = 0,99, element.row = 4 и element.col = 20, то мне нужно обнулить A (4, :) и А (: 20), где «:» обозначение означает «все» или во всем диапазоне от 0 до конца. Это MATLAB / Python нотации, но я использую C ++ для этого. Я в настоящее время использую отдельный булеву матрицу Р (х, у) для устранения. Для каждого (х, у) местоположение, которое извлекается из приоритетной очереди, я просто петли по всей строки / COL и установить ложное значение для всего, что лежит на той же самой строке / COL. Затем, когда я сую элемент из очереди, я просто проверить, если он был установлен в ложна в Р (х, у). Тем не менее, это весьма неэффективно. Базовый вариант моего алгоритма требует только устранение всей строки / COL. EDIT: Извините за отсутствующий последнюю часть моего вопроса ... Более продвинутая версия этого алгоритма требует устранения все на той же строке / цв, но и для ближайших соседей 4, за исключением. Другой вариант требует устранения все в верхнем правом углу и в нижнем левом квадранте матрицы, когда XY сетка помещается в (строка, столбец) позиции. Мой вопрос в принципе, есть ли очевидная структура данных, которые я мог бы использовать. Это должно было бы а) позволяет мне эффективно "
Mustafa
1

голосов
1

ответ
260

Просмотры

Unix команды для разделения двух списков в три: общее между ними и уникальным для каждого из них?

Есть простой набор команд Unix можно использовать для разделения двух списков в трех списки, которые состоят из общих линий между двумя списками, линия, уникальной для первой, и уникальных строки до последнего? Списки будут несортированными и каждая строка будет уникальной. Например: Список 1: кошки шляпа Список коробки 2: коробки собака рок Выход: коробка, кошка шляпу, собака породы
user794479
1

голосов
1

ответ
674

Просмотры

C ++: Структура данных для эффективной вставки и извлечения пользовательских данных

У меня ситуация в C ++ (на Windows), где мне нужно, чтобы сохранить набор пары междунар: пары, где начальные значения уникальны (мы не должны иметь дело с этим). Операции, необходимые являются: вставка пары получения пара X: это должно вернуть пару Y, где Y начало в <начало Х <конец Х <конец Y в. Если Y не существует, возвращать ложь. Основным решением является просто сохранить набор пар. Для поиска, мы будем перебирать последовательно через набор для проверки. Это O (п). Я ищу лучшее решение. В настоящее время я вижу структуры данных 2 кандидатов: набор отсортированного векторного STL в (внутренне реализовано в виде двоичного дерева поиска?) Рассортировано Vector: Плюсы: можно настроить бинарный поиск для поддержки операции поиска. Это O (LOGN) Минусы: как эффективно вставить новую пару, чтобы поддерживать порядок сортировки. Как избежать повторной сортировки стоимость O (NlogN)? Набор: Активный: Easy вставки с использованием стандартного метода вставки. Это O (1)? Минусы: Как избежать последовательного поиска? Как сделать лучше, чем O (N)? Спасибо за совет. Я также открыты для любых других структур, которые могут эффективно (первый критерий является скорость, вторая является память) поддерживают 2 операции, упомянутые выше.
Paul Hoang
1

голосов
2

ответ
1.3k

Просмотры

Есть ли способ вставки множества STL копирует значение переданных объектов?

У меня есть такой C ++ кода (пожалуйста, не спрашивайте, почему она выглядит так уродливо;) - вы должны верить, что из-за дальнейшую часть коды это действительно имеет смысл): IntSet темп; SuperSet SUPERSET; для (UINT = 0; г <noItems; я ++) {temp.insert (I); superSet.insert (температура); temp.clear (); } Она предназначена для приготовления noItems наборов целых чисел (IntSet, каждое из которых содержит одно числа значения) и вставить его в другой набор (SuperSet). Оба набора определяется следующим образом: ЬурейиЙ неподписанный Int DATATYPE; ЬурейеЕ станд :: набор IntSet; ЬурейеЕ станд :: набор SuperSet; Для меня этот код не должен работать, как задумано, потому что только после установки темпа в SUPERSET я очистив темп, и я обнаружил, что вставка получает ссылку в качестве аргумента: пара вставки (Const value_type & х); (Http://www.cplusplus.com/reference/stl/set/insert/) Итак, в результате кода, представленного выше, я должен получить SuperSet, содержащий только очищается IntSet лет. Но «к сожалению», этот код работает - все IntSet наполнены соответствующими значения ... Так что мой вопрос - что делает метод вставки из STL Установит действительно в своем теле? Есть ли просто скопировать объекты, которые передаются ей по ссылке? И какова разница в поведении этого метода между передачей объекта или примитивных типов? Спасибо за ответ! ы установить действительно в своем теле? Есть ли просто скопировать объекты, которые передаются ей по ссылке? И какова разница в поведении этого метода между передачей объекта или примитивных типов? Спасибо за ответ! ы установить действительно в своем теле? Есть ли просто скопировать объекты, которые передаются ей по ссылке? И какова разница в поведении этого метода между передачей объекта или примитивных типов? Спасибо за ответ!
Maciek
1

голосов
1

ответ
517

Просмотры

Ошибка при нахождении двух подмножеств, имеющих равную сумму

Я пытался разделить массив на два непустые непересекающиеся подмножества таких, что их сумма равна. например. А = {1,2,3,6,88,55,29} один возможный ответ = 1 + 2 + 3 и 6 Я прочитал Mit учебник по сбалансированной проблеме раздела, но мои ограничения различны. Я не должен рассматривать все множества А (значит, его не обязательно, что A1 U A2 приведет к А). Кроме того, еще одна проблема заключается в предел N. Есть в большинстве 100 отдельных элементов, каждый из (
Bond

Просмотр дополнительных вопросов