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

Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент - C++

Восстановить пароль Регистрация
 
к8
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 38
06.05.2014, 18:41     Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент #1
Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 18:41     Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент
Посмотрите здесь:

Дана последовательность из n целых чисел. Найти минимальный элемент в этой последовательности. C++
C++ Дана последовательность целых чисел a1, a2, ..., an.
Дана матрица целых чисел размерностью 5 на 5. Определить максимальный элемент из минимальных значений строк этого массива. C++
Дана последовательность целых чисел, последнее из которых 0. Найти количество 3-значных чисел C++
C++ Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент
C++ Дана последовательность целых чисел. Вставить новый элемент перед всеми четными элементами
Алгоритмы STL. Дана последовательность целых чисел. Удалить из массива все максимальные элементы C++
Дана последовательность из n целых чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,217
Завершенные тесты: 1
06.05.2014, 19:43     Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент #2
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>
 
template <class T>
void vec_print(const std::vector<T> & v) {
    for (int i = 0, ie = v.size(); i < ie; std::cout << v[i++] << " ");
}
 
template <class T>
void vec_del_each_kth_element(std::vector<T> & v, unsigned k) {
    typename std::vector<T>::iterator i = v.begin();
    for (unsigned cnt = 1; i != v.end(); ++cnt) {
        i = (cnt % k == 0) ? v.erase(i) : i + 1;
    }
}
 
int main() {
    std::vector<int> v {1,3,4,45,34,23,23,2,4,2,2,5,6};
    std::cout << "vector before = "; vec_print(v); std::cout << std::endl;
    vec_del_each_kth_element(v, 4);
    std::cout << "vector  after = "; vec_print(v); std::cout << std::endl;
}
Bash
1
2
3
$ g++ a.cpp -std=c++0x && ./a.out 
vector before = 1 3 4 45 34 23 23 2 4 2 2 5 6 
vector  after = 1 3 4 34 23 23 4 2 2 6
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
06.05.2014, 19:45     Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент #3
к8,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include<algorithm>
#include<iterator>
 
int main()
{
    std::vector <int> ivec = { 2, 3, 1, 5, 23, 6, 3, 7, 1, -2, 5, 3, 56 };
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int>(std::cout, " "));
    const size_t k = 3;
    size_t count = 0;
    ivec.erase(std::remove_if(ivec.begin(), ivec.end(), [&count,k](int val) {return ++count%k == 0; }), ivec.end());
    std::cout << "\n";
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
Yandex
Объявления
06.05.2014, 19:45     Дана последовательность целых чисел. Удалитьиз массива каждый k-тый по счету элемент
Ответ Создать тему
Опции темы

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