Форум программистов, компьютерный форум CyberForum.ru

Удалить из массива элементы, в записи которых все цифры различны - C++

Восстановить пароль Регистрация
 
fu
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
31.05.2013, 00:11     Удалить из массива элементы, в записи которых все цифры различны #1
Удалить из массива элементы, в записи которых все цифры различны. (Желательно использовать вектора)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 00:11     Удалить из массива элементы, в записи которых все цифры различны
Посмотрите здесь:

Удалить из массива все элементы,в записи которых все цифры различны. C++
C++ Удалить из массива все элементы,в записи которых все цифры различны.
C++ Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
C++ Найти все трехзначные числа, в которых все цифры различны.
C++ Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
Удалить из массива все элементы, в записи которых есть заданная цифра C++
Подсчет натуральных чисел, в которых все три цифры различны C++
C++ Найти все четырехзначные числа, у которых все цифры различны

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2013, 15:40     Удалить из массива элементы, в записи которых все цифры различны #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <functional>
 
struct UniqueDigits 
{
    bool operator()(int value) const
    {
        std::set<int> s;
        
        while( value )
        {
            int digit = value % 10;
            if( s.end() != s.find( digit ) ) return false;
            s.insert( digit );
            value /= 10;
        }
        
        return true;
    }
    
    typedef int argument_type;
};
 
int main() {
    
    std::vector<int> v = { 102, 112, 111, 2, 345, 555, 0 };
 
    std::cout << "\nBefore delete: ";
    std::for_each( v.begin(), v.end(), [](int e){ std::cout << e << " "; } );
    
    auto pend = std::remove_if( v.begin(), v.end(), std::not1(UniqueDigits()) );
    v.erase( pend, v.end() );
    
    std::cout << "\nAfter delete: ";
    std::for_each( v.begin(), v.end(), [](int e){ std::cout << e << " "; } );
    
    return 0;
}
Добавлено через 1 час 5 минут
P.S. std::not1() надо убрать кстати инвертировал задание случайно
Yandex
Объявления
31.05.2013, 15:40     Удалить из массива элементы, в записи которых все цифры различны
Ответ Создать тему
Опции темы

Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru