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

В C++ `std::set`s является своего рода ассоциативным контейнером, в котором хранятся уникальные элементы, и в котором сами элементы являются ключами.
2 ответа

std:: установить собственный компаратор для 2D точек

Мне нужен список не дублированных 2D точек, поэтому я использую std::set с пользовательской функцией сравнения. У функции, которую я использую, возникают проблемы после вставки точек, потому что иногда std::find не находит уже вставленные точки. con…
02 дек '15 в 16:24
3 ответа

Сет-лист в с ++

Я создал набор списков в C++ и заполнен элементами std::set<Unit*> myUnits; for(std::set<Unit*>::iterator i = myUnits.begin(); i != myUnits.end(); i++) { if() {} } Так что я хочу, чтобы, если проверить каждый элемент setlist, что нужно в…
21 ноя '11 в 17:00
1 ответ

Вставить значения в вектор множеств int в C++

Я хочу вставить значения в vector из set<int>, который определяется с помощью typedef как указано ниже: typedef std::set<int> blockSet_t; std::vector<blockSet_t>* myvector Я хочу иметь такие ценности, чтобы myvector[0] имеет set из…
20 фев '16 в 03:30
2 ответа

Как конвертировать std::vector в std::set без потери порядка

Я использую приведенный ниже код для конвертации: std::set<ObjectType> s(v.begin(), v.end()); Тем не менее, мне нужно сохранить порядок векторных элементов. Как я могу это сделать?
26 янв '16 в 19:38
1 ответ

Запись-запись данных из std::set insert() и find()?

Чтобы поэкспериментировать с потоком-дезинфицирующим средством, я создал крошечную программу на C++, которая по назначению содержит гонку данных. Действительно, Цан обнаруживает ошибку, отлично! Однако я озадачен сгенерированным сообщением... Он соо…
1 ответ

Cplusplus std:: набор двумерного массива

Я новичок в C++ и мне нужно использовать Set от STL но я борюсь с концепцией. У меня есть такой массив int my_data[3] Я хочу создать (не знаю, возможно ли это) set с местом для 3-х дюймов и что key для set будет int это хранится в первом столбце. Я …
24 мар '14 в 13:44
2 ответа

Использование постоянного символьного указателя в контейнере std::set: потребление памяти

В настоящее время я работаю на устройстве с очень небольшим объемом памяти (4 МБ), и у меня есть компонент моей программы, который требует std:: set. Я хотел бы перенести этот набор с использования std:: string на использование указателей const char…
19 фев '11 в 23:51
1 ответ

Вставка пары в std::set не согласована (не распознает <pair>.second)

Этот код работает по-другому, если я добавлю условие: Первый случай: #include&lt;bits/stdc++.h&gt; using namespace std; struct comp { bool operator()(pair&lt;int,pair&lt;int,int&gt; &gt; a, pair&lt;int,pair&lt;int,int&gt; &gt; b) { return a.first&gt…
23 апр '16 в 10:47
1 ответ

Контейнеры Qt - что мне выбрать?

Qt предлагает набор STL контейнеры Однако нет доступного контейнера, в котором хранятся упорядоченные значения по их порядку (например, std::set ) и QSet по некоторым причинам ведет себя как std::unordered_set, Я понимаю что наверное O(1) поиск в на…
20 апр '12 в 18:34
9 ответов

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

У меня есть массив целых чисел, из которого мне нужно удалить дубликаты, сохраняя при этом порядок первого вхождения каждого целого числа. Я могу видеть, как это происходит, но представьте себе, что есть лучший способ, который делает использование а…
30 авг '12 в 15:33
1 ответ

std::set компаратор, который ссылается на внешнее значение

У меня есть что-то вроде class ClassB { // .... private: static std::unordered_map&lt;ClassA,double&gt; activity; struct compare_values { bool operator()(const ClassA&amp; l, const ClassA&amp; r) const { return activity[l] &lt; activity[r]; } }; std…
22 дек '17 в 09:39
2 ответа

Элегантный способ найти ключи с заданным префиксом в std::map или элементы в std::set

У меня есть карта, ключи которой являются std::string. Я хочу найти те элементы на карте, которая начинается с "DUPA/" префикс. Найти нижнюю границу легко, но верхняя граница немного проблематична. Я написал такой кусок кода: const char* prefix = "D…
23 июн '17 в 09:30
1 ответ

Можно ли заставить STL установить переоценку предиката?

Рассмотрим следующие структуры данных и код. struct Sentence { std::string words; int frequency; Sentence(std::string words, int frequency) : words(words), frequency(frequency) {} }; struct SentencePCompare { bool operator() (const Sentence* lhs, co…
20 ноя '18 в 08:22
1 ответ

Скопируйте std::map в std::set в C++

Возможно ли с помощью алгоритма STL глубокое копирование значений std::map в std::set? Я не хочу явно вставлять в новый набор. Я не хочу явно делать это: std::map&lt;int, double*&gt; myMap; //filled with something std::set&lt;double*&gt; mySet; for …
06 июн '12 в 14:52
1 ответ

Как добраться до элементов в std::set два на два в C++

У меня есть список целых чисел.(В настоящее время хранится в std::vector, но для повышения эффективности мне нужно преобразовать его в набор. Но в текущей версии я использую его следующим образом: (Я использую C++98 не C++11) int res=0; vector&lt;ve…
15 янв '16 в 14:26
2 ответа

Как поместить std::set в std::map

Я объявил std: карту ниже: std::map&lt;std::string, std::set&lt;unsigned char*&gt;&gt; FilesMap; int InsertData(unsigned char* name) { // here i try to insert pair with name above and clear std::set FilesMap.insert(std::pair&lt;std::string, std::set…
08 окт '12 в 15:34
5 ответов

Почему std::set заставляет использовать const_iterator?

Рассмотрим простую программу, приведенную ниже, которая пытается перебрать значения набора, используя неконстантные ссылки на элементы в нем: #include &lt;set&gt; #include &lt;iostream&gt; class Int { public: Int(int value) : value_(value) {} int va…
04 авг '16 в 13:16
2 ответа

Как проверить, есть ли элемент <x в наборе C++

Есть ли элемент, который меньше заданного x в std::set sЕсли нет print, "x меньше, чем любой элемент", если есть, то print "самый большой элемент, который меньше x".Кстати, вы также знаете, что х не входит в набор является: cin &gt;&gt; x; auto it =…
28 авг '18 в 17:11
1 ответ

Обратный итератор продвигается с помощью std::set::erase

Я пытаюсь стереть элемент, в который я только что прошел. Сначала я забыл сохранить возвращаемое значение s1.erase (... внутри цикла for, чтобы в конечном итоге установить условие выхода из цикла. Учитывая то, как работает код, я ожидал, что цикл бу…
12 дек '18 в 01:54
4 ответа

Как очистить std::set из указателей объектов?

У меня проблема с очисткой моего набора, поэтому у меня есть 3 класса, например:класс A и 2 унаследованы классы B и C. В коде, в котором я храню элементы в моем наборе из 3 типов, набор: set&lt;A*&gt; objects; поэтому всякий раз, когда я создаю элем…