Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Blodi
0 / 0 / 0
Регистрация: 21.02.2017
Сообщений: 27
#1

Используя алгоритм adjacent_find, обнулить первую пару соседних элементов вектора, имеющих одинаковую чётность - C++

07.03.2017, 08:23. Просмотров 200. Ответов 7
Метки c++ (Все метки)

Дан вектор V. Обнулить первую пару соседних элементов, имеющих одинаковую четность. Например, список 1, 2, 3, 4, 6, 8, 3, 1 должен быть преобразован следующим образом: 1, 2, 3, 0, 0, 8, 3, 1. Если список не содержит соседних элементов с одинаковой четностью, то не изменять его. Использовать алгоритм adjacent_find с параметром — функциональным объектом.

Немного не ясно можете добрые люди скинуть код пример или добротную статейку на подобный алгоритм.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2017, 08:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Используя алгоритм adjacent_find, обнулить первую пару соседних элементов вектора, имеющих одинаковую чётность (C++):

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

Почему повторяющиеся символы заданной строки не выводятся на консоль? (алгоритм std::adjacent_find) - C++
Никак не могу взять в толк, почему повторяющиеся символы не выводятся на консоль? #include <iostream> #include <string> #include...

Как вывести название всех файлов имеющих одинаковую первую букву? - Bash
Здравствуйте. Помогите пожалуйста с задачкой: Нужно вывести название всех файлов в каталоге, имеющих одинаковую первую букву. Буква и...

Определить номер строки и столбца, имеющих одинаковую сумму элементов - Turbo Pascal
Определить номер строки и столбца, имеющих одинаковую сумму элементов. Сказали с подключением каких-то модулей о_о. Ничего не...

Определить пару соседних элементов с суммой равной заданному числу - Turbo Pascal
Дан массив целых чисел! Определить пару соседних элементов суммой равной заданному числу. Если можно без процедур, и замудренностей! Я...

Удалить пары соседних элементов массива, имеющих одинаковые значения - C (СИ)
"Задан размер массива целых чисел и значения его элементов.Удалить пары соседних элементов,имеющих одинаковые значения,и вывести размер...

7
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 518
Завершенные тесты: 5
07.03.2017, 08:38 #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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
int main(int argc, char** argv)
{
    std::vector<int> A = { 1, 2, 3, 4, 6, 8, 3, 5 };
 
    for (auto it = A.begin(); it != A.end(); it++)
        std::cout << *it << " ";
 
    std::cout << endl;
 
    auto it = std::adjacent_find(A.begin(), A.end(), 
        [](const int& n1, const int& n2) { return (n1 % 2 == 0) && (n2 % 2 == 0); });
 
    if (it != A.end())
    {
        *it = 0; *(it + 1) = 0;
    }
 
    for (auto it = A.begin(); it != A.end(); it++)
        std::cout << *it << " ";
 
    std::cout << endl;
 
    std::cin.get();
    std::cin.get();
 
    return 0;
}
http://en.cppreference.com/w/cpp/algorithm/adjacent_find
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4276 / 2295 / 567
Регистрация: 18.10.2014
Сообщений: 3,910
07.03.2017, 09:07 #3
Цитата Сообщение от Invader0x7F Посмотреть сообщение
C++
1
[](const int& n1, const int& n2) { return (n1 % 2 == 0) && (n2 % 2 == 0); }
В задании сказано: первую пару с одинаковой четностью, а не первую пару четных.
0
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 518
Завершенные тесты: 5
07.03.2017, 09:08 #4
А что это означает ??
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4276 / 2295 / 567
Регистрация: 18.10.2014
Сообщений: 3,910
07.03.2017, 09:09 #5
Цитата Сообщение от Invader0x7F Посмотреть сообщение
А что это означает ??
Это означает, что в искомой паре разрешается либо оба четных, либо оба нечетных. При входе 1, 2, 3, 5, 6, 8, 3, 1 правильный ответ: 1, 2, 0, 0, 6, 8, 3, 1, т.к. первая пара с одинаковой четностью - это 3, 5 (оба нечетные). А ваш вариант в такой ситуации найдет и обнулит 6, 8.
0
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 518
Завершенные тесты: 5
07.03.2017, 09:11 #6
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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
int main(int argc, char** argv)
{
    std::vector<int> A = { 1, 2, 3, 4, 6, 8, 3, 5 };
 
    for (auto it = A.begin(); it != A.end(); it++)
        std::cout << *it << " ";
 
    std::cout << endl;
 
    auto it = std::adjacent_find(A.begin(), A.end(), 
        [](const int& n1, const int& n2) { return ((n1 % 2 == 0) && 
                   (n2 % 2 == 0)) || ((n1 % 2 != 0) && (n2 % 2 != 0)); });
 
    if (it != A.end())
    {
        *it = 0; *(it + 1) = 0;
    }
 
    for (auto it = A.begin(); it != A.end(); it++)
        std::cout << *it << " ";
 
    std::cout << endl;
 
    std::cin.get();
    std::cin.get();
 
    return 0;
}
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4276 / 2295 / 567
Регистрация: 18.10.2014
Сообщений: 3,910
07.03.2017, 09:13 #7
Цитата Сообщение от Invader0x7F Посмотреть сообщение
C++
1
2
[](const int& n1, const int& n2) { return ((n1 % 2 == 0) && 
                           (n2 % 2 == 0)) || ((n1 % 2 != 0) && (n2 % 2 != 0)); }
Теперь, конечно, правильно. Однако этажность зашкаливает...

C++
1
[](int n1, int n2) { return n1 % 2 == n2 % 2; }
0
gru74ik
Модератор
Эксперт CЭксперт С++
4349 / 1925 / 208
Регистрация: 20.02.2013
Сообщений: 5,108
Записей в блоге: 22
07.03.2017, 09:26 #8
 Комментарий модератора 
Blodi, пожалуйста, прочитайте правила форума.
Особое внимание обратите на следующие пункты:

.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2017, 09:26
Привет! Вот еще темы с ответами:

Определите, содержит ли последовательность хотя бы одну пару равных соседних элементов - Turbo Pascal
Пусть вводится последовательность из целых чисел, оканчивающаяся нулем и состоящая более чем из одного ненулевого элемента. Определите: ...

Найти пару соседних элементов с суммой, которая равняется заданному числу - Pascal ABC
Найти пару соседних элементов с суммой, которая равняется заданному числу. Добавлено через 8 минут Пожалуйста помогите сделать...

Определить номера двух соседних элементов массива, имеющих минимальную сумму - PascalABC.NET
Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне и определяет номера двух соседних...

Ввести n чисел. Содержит ли последовательность хотя бы одну пару равных соседних элементов - C#
Здравствуйте, нужна помощь с решением задания в C#(консоли). Ввести n чисел. Содержит ли последовательность хотя бы одну пару равных...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru