• курсовая работа на тему:ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С/С++: Дан целочисленный массив. преобразовать массив таким образом,чтобы а нам остались значения,повторяющиеся дважды
    ПОМОГИТЕ ПОЖАЛУЙСТА ДАЮ 185 БАЛЛОВ

Ответы 1

  • Используя boost библиотеку можно было это сделать ещё проще (нужно заканчивать баловаться boost'ом, ато совсем мозги атрофируются :D). Если посидеть и подумать чуть дольше 5 минут, можно и это решение улучшить, но оставлю это Вам)#include <vector>#include <iostream>#include <algorithm>#include <iterator> #include <unordered_map>using namespace std;unordered_map<int, size_t> umap;void KeepDuplicates(vector<int>& v){    vector<int> tmp(v);    for (size_t i = 0; i < tmp.size(); ++i)    {        unordered_map<int, size_t>::iterator pos = umap.find(tmp[i]);        if (pos->second != 2)        {               auto it = remove(v.begin(), v.end(), pos->first);            v.resize(it - v.begin());        }    }}int main(){    vector<int> arr = { 3, 2, 3, 6, 2, 7, 5, 6, 9, 2 };    for (const auto& i : arr) ++umap[i];    KeepDuplicates(arr);    copy(arr.begin(), arr.end(), ostream_iterator<int>(cout, " "));}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years