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

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

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

C++ как удалить все елементы с очереди queue
Условие:Все нулевые елементы заменить на еденицу!Во второй строке у меня там изменённый масив но там выводит нули одни!Почему? C++
подскажите, как правильно составить алгоритм (Матрицы. Удалить заданную строку a и столбец b со сдвигом) C++
C++ нужно убрать однаковые елементы в списке(есть код програмы) только нехватает удаления однаковых елементов
Ребят, нужно написать программу шифровки циклическим сдвигом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,427
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
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,427
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
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,427
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
Спасибо за коментарий, условия перепутал!!!!!
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
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++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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     Есть масив, нужно удалить некоторые елементы, со сдвигом
Ответ Создать тему
Опции темы

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