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

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

Восстановить пароль Регистрация
 
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
02.10.2011, 07:46     Удалить из массива все элементы,в записи которых все цифры различны. #1
дана последовательность целых чисел. Удалить из массива все элементы,в записи которых все цифры различны.
при решении задачи нужно использовать библиотеку <vector> , <algorithm> и пользоваться итераторами ( не обязательно всё сразу )
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 07:46     Удалить из массива все элементы,в записи которых все цифры различны.
Посмотрите здесь:

Удалить из массива все элементы,в записи которых все цифры различны. C++
Удалить из массива элементы, в записи которых все цифры различны C++
C++ Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
C++ Найти все трехзначные числа, в которых все цифры различны.
C++ Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
02.10.2011, 12:43     Удалить из массива все элементы,в записи которых все цифры различны. #2
Ириска5, типа этого.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main(void) { 
   int arr[] = { 1, 345, 2, 9, 7, 34, 9, 34, 89, 1 , 2 };
   vector<int> vec(arr, arr + sizeof(arr)/sizeof(int));
 
prev:
    for(size_t i = 0u; i < vec.size(); i++) {
        if(count(vec.begin(), vec.end(), vec[i]) == 1) {
              vec.erase(vec.begin() + i);
              goto prev;
        }
    }
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout.put('\n');
    cin.get();
    return 0;
}
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
02.10.2011, 13:21  [ТС]     Удалить из массива все элементы,в записи которых все цифры различны. #3
не могу запустить программу пишет, что не может найти "ostream_iterator"
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2011, 13:25     Удалить из массива все элементы,в записи которых все цифры различны. #4
Подключите файл iterator
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
02.10.2011, 13:34  [ТС]     Удалить из массива все элементы,в записи которых все цифры различны. #5
какой файл, не понимаю
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.10.2011, 14:07     Удалить из массива все элементы,в записи которых все цифры различны. #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <sstream>
 
int main()
{
    std::cout << "Enter array( enter EOF for terminate ):\n";
    std::vector<int> vec( std::istream_iterator<int> (std::cin), std::istream_iterator<int> () );
    vec.erase( std::remove_if( vec.begin(), vec.end(), [] (int x)
    {   
        x = abs(x);
        std::ostringstream ost;
        ost << x;
        std::string temp( ost.str() );
        std::sort( temp.begin(), temp.end() );
        return std::unique( temp.begin(), temp.end() ) == temp.end() ;
        
    } ), vec.end() );
    std::copy( vec.begin(), vec.end(), std::ostream_iterator<int> (std::cout, " ") );
}
В винде ввод заканчивается через Ctrl+Z, в линуксе Ctrl+D
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2011, 14:33     Удалить из массива все элементы,в записи которых все цифры различны.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
02.10.2011, 14:33  [ТС]     Удалить из массива все элементы,в записи которых все цифры различны. #7
xAtom, подключила библиотеку, но программа выдаёт числ 34 тоже,а оно должно удалиться

Добавлено через 2 минуты
diagon, спасибо но не знаю библиотеку sstream поэтому смутно понимаю что у вас написано
Yandex
Объявления
02.10.2011, 14:33     Удалить из массива все элементы,в записи которых все цифры различны.
Ответ Создать тему
Опции темы

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