проблем със задачата Most Frequent Number
Здравейте оптивам се да реша задачата Most Frequent Number. Получвам верен output на всички тестове без тези които трябва да се изкарат всички повтарящи се числа.
код https://pastebin.com/0F6FW9vK
като този output:
11 7 7 7 0 2 2 2 0 9 9 9 |
2 7 9 |
The numbers 2, 7 and 9 have the same maximal frequence (each occurs 3 times). |
Здравей, извинявай за закъснението.
Успях да направя задачата с кода за който имах въпрос, но имам още два въпроса
ето го https://pastebin.com/QPvbr9hV
Първият е както казахте да използваме един масив от 10 елемента.И видях решението на @kolioi
но не разбирам ето тази част от кода :
и творият ми въпрос е от моето решение.Опитах се да използвам итератори, но ми дава много грешки :
vector<int>::iterator it;
vector<int>::iterator it2;
for (it = numbers.begin(); it != numbers.end(); ++it)
{
for (it2 = numbers.begin(); it2 != numbers.end(); ++it2)
{
if(numbers.at(*it) == numbers.at(*it2))
{
it=numbers.erase(it2);
}
}
}
Пo първия въпрос:
Относно итераторите - какво искаш да постигнеш с този код и какви са грешките?
Здраей логигата ми е да направя 2-ва вложени цъкъла с итератори , които обхождата вектора с повтарящи се числа : примерно ако инпута е
5
1 2 2 4 4 -> и във вектора които обхождаме са числата 2 2 4 4 и с итераторите искам да изтрия повтарящите се числа и да останат 2 4. И след това да ги изкарам
https://pastebin.com/cErABka9
А грешката която ми дава компилатора е ->
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 4) >= this->size() (which is 3)
Aborted
Така написан, кодът ти няма да свърши това, което искаш, и не мисля, че има валиден (практически) начин за обхождане на една колекция с два отделни итератора във вложени цикли, съчетано с модифициране на колекцията (триене на елемент) през един от итераторите.
Най-добре ще разбереш какво се случва и защо не работи, ако пуснеш програмата в debug и видиш какво се случва с колекцията и итераторите, когато изтриеш елемент.