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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
#1

Есть масив, нужно удалить некоторые елементы, со сдвигом - C++

19.02.2010, 19:56. Просмотров 490. Ответов 8
Метки нет (Все метки)

Есть масив, нужно удалить некоторые елементы, со сдвигом. Подскажите как можно реализовать???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2010, 19:56     Есть масив, нужно удалить некоторые елементы, со сдвигом
Посмотрите здесь:

C++ Дан масив символьных строк, в каждой строке удалить путём сдвига все латинские буквы
C++ Есть список игрушек, некоторые из которых имеются в N детских садах. Определить игрушки из списка:
C++ как удалить все елементы с очереди queue
C++ Есть некоторые строчки кода, которые я не понимаю
Удалить заданную строку и столбец матрицы со сдвигом C++
C++ нужно убрать однаковые елементы в списке(есть код програмы) только нехватает удаления однаковых елементов
C++ Нужно отсортировать одномерный масив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,458
19.02.2010, 19:59     Есть масив, нужно удалить некоторые елементы, со сдвигом #2
C++
1
2
3
4
5
6
7
8
9
int Pos = 0;
for (int i = 0; i < N; i++)
{
   if ( a[i] != некоторое_условие )
   {
       a[Pos] = a[i];
       Pos++;
   }
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 20:07  [ТС]     Есть масив, нужно удалить некоторые елементы, со сдвигом #3
Что то невыходит!!!! Выводит тот же масив!!!!
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,458
19.02.2010, 20:21     Есть масив, нужно удалить некоторые елементы, со сдвигом #4
Попробуйте конкретизировать ваше задание
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 20:50  [ТС]     Есть масив, нужно удалить некоторые елементы, со сдвигом #5
Например: Есть масив 1 2 4 5 6 7 8 Мне нада удалить елементы, которые находятся в интервале [1,4]
После удаления масив должен иметь вид 5 6 7 8
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,458
19.02.2010, 20:54     Есть масив, нужно удалить некоторые елементы, со сдвигом #6
C++
1
2
3
4
5
6
7
8
9
10
int Pos = 0;
for (int i = 0; i < N; i++)
{
   // условие для тех элементов которые надо оставить
   if ( (a[i] > 4) && (a[i] < 1) ) 
   {
       a[Pos] = a[i];
       Pos++;
   }
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 21:25  [ТС]     Есть масив, нужно удалить некоторые елементы, со сдвигом #7
Спасибо за коментарий, условия перепутал!!!!!
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.02.2010, 22:56     Есть масив, нужно удалить некоторые елементы, со сдвигом #8
MILAN,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <functional>
 
int main()
{
    int arr[] = {1,2,3,4,5,6,7};
    const size_t N = sizeof(arr) / sizeof(*arr);
 
    std::ostream_iterator <int> O_O(std::cout," ");
    int *ptr = std::remove_if(arr, arr+N, std::bind2nd(std::greater <int> (), 5));
 
    std::copy(arr, ptr, O_O);
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2010, 23:12     Есть масив, нужно удалить некоторые елементы, со сдвигом
Еще ссылки по теме:

Ребят, нужно написать программу шифровки циклическим сдвигом C++
На сколько кусков распадется часть листа, если из него вырезать некоторые клетки? Есть алгоритм. C++
C++ Удалить сдвигом элементы массива
Задача по наследованию в C++, нужно реализовать некоторые моменты C++
Нужно объяснить некоторые строки в программе C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.02.2010, 23:12     Есть масив, нужно удалить некоторые елементы, со сдвигом #9
Цитата Сообщение от insideone Посмотреть сообщение
if ( (a[i] > 4) && (a[i] < 1) )
"если a[i] больше 4 и меньше 1"?

Добавлено через 7 минут
Андрейка, так наоборот всё, что больше 5 убирает. И заголовок <iterator> пропустили. Вот чуть подправил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
 
int main()
{
        int arr[] = {1,2,3,4,5,6,7};
        const size_t N = sizeof(arr) / sizeof(*arr);
 
        std::ostream_iterator <int> O_O(std::cout," ");
        int *ptr = std::remove_if(arr, arr+N, std::bind1st(std::greater <int> (), 5));
 
        std::copy(arr, ptr, O_O);
        std::cout << std::endl;
 
        return 0;
}
Добавлено через 3 минуты
другой вариант
C++
1
int *ptr = std::remove_if(arr, arr+N, std::bind2nd(std::less <int> (), 5));
Yandex
Объявления
19.02.2010, 23:12     Есть масив, нужно удалить некоторые елементы, со сдвигом
Ответ Создать тему
Опции темы

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