Loading...
javor_tzvetkov8787 avatar javor_tzvetkov8787 3 Точки

Запълване на std::set

След като не можем да вкарваме елементи в std::set, които да се дублират (по-точно казано можем да вкарваме, но дублиращите не се запазват), то как на практика се създава std::set съдържащ повтарящи се елементи?

Тагове:
0
C++ Fundamentals
Filipbg avatar Filipbg 26 Точки

Мисля че това трябва да бъде Multiset. Беше казано в лекцията и до колкото знам дублирането(copy) на даден елемент е специалността му. Тук има инфо за него http://www.cplusplus.com/reference/set/multiset/multiset/

0
dmartinov avatar dmartinov 37 Точки

Краткият отговор е, че ако искаш да пазиш дублиращи се елементи в подобен род контейнер просто няма да ползваш set :) 

Но ако дадеш повече информация за това какво се опитваш да постигнеш можем да бъдем и по-полезни :)

0
javor_tzvetkov8787 avatar javor_tzvetkov8787 3 Точки

Мерси за отговорите, но може би неправилно съм задал въпроса си. В лекцията си Живко Петров е отворил презентацията и от точка 1ч.23м.44с. казва за сета "вкарвайки всички тези елементи, изкарвайки ги ще останат само уникалните, дубликатите се елиминират". С insert не става, но въпроса ми е какъв е другия начин след като Живко Петров го дава като пример - даден ни е наличен сет с дублиращи елементи и от него принтваме само уникланите елементи. Нямах време снощи да чета в нета, но предполагам, че има начин "наведнъж" да се вземат много елементи, да се вкарат в std::set, запазват се само уникалните, но в момента на попълването на сета наистина да влизат едновременно повтарящи се елементи, които веднага се "орязват".

Демото в лекцията е от точка 1ч.34м.56с. на това, което Живко Петров показва в презентацията.

Та въпроса е дали може да вкараме елементи много и сред тях да има повтарящи се (които явно не се запазват).

0
dmartinov avatar dmartinov 37 Точки

Да, на set може да подадеш поредица от елементи измежду които да има повтарящи се, но ще се запишат само уникалните. Да речем, че са ти дали да провериш следната поредица от числа и ти трябва да принтираш уникалните, последователно:

5 7 3 2 6 8 4 2 4 6 7 8 3 1 5 5 5 7 0 3

Ето тук се намесва set-a. Вместо да правиш проверки дали всяка една цифра не съществува вече, после да проверяваш коя е по-голяма и коя по-малка от другите, простп ги вкарваш в set и той ще направи всичко това защото това е логиката на този контейнер.

Разгледай следните 2 линка в които ще научиш повече за set 

http://www.cplusplus.com/reference/set/set/

 

https://www.google.com/amp/s/www.geeksforgeeks.org/set-in-cpp-stl/amp/

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.