Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
XapakmepoM
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 10
1

Продемонстрировать работу алгоритмов STL copy, и max_element

11.06.2016, 16:42. Просмотров 586. Ответов 6
Метки нет (Все метки)

есть задания 1)Создайте пустой целочисленный вектор и поместите в него 10 случайных чисел с интервалом значений от -15 до 15.
2)Напишите функцию для вывода на экран содержимого вектора. Для доступа к элементам воспользуйтесь методом at. Продемонстрируйте работу функции, применив к созданному в п.1 вектору.
3)После каждого четвертого числа вставьте в вектор число -19 и выведите содержимое вектора на экран.
4)Определите количество отрицательных значений в векторе.
5)Удалите из вектора все значения, которые располагаются на не четных позициях и выведите содержимое вектора на экран.
6)Используя ваш вектор, продемонстрируйте работу алгоритмов STL copy, и max_element.

Не могу зделать 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include<vector>
#include<algorithm>
#include<iostream>
 
using namespace std;
 
void printV(vector<float> v) {
    cout << "Vector: ";
    vector<float>::iterator it;
    for (it = v.begin(); it != v.end(); it++) {
        cout << *it << '\t';
    }
    cout << endl;
}
 
bool five(int a) {
    return a < 6 && a > -6;
}
 
bool negative(float a) {
    return a < 0;
}
 
bool compare(float a, float b) {
    return (b < a);
}
 
int main() {
    vector<float> v;
    for (int i = 0; i < 10; i++) {
        v.push_back(rand() % 31 - 15);
    }
    printV(v);
 
    for (int i = 4; i < v.size(); i += 5) {
        v.insert(v.begin() + i, -19);
    }
    cout << "Inserting -19 after each 4 numbers\n";
    printV(v);
 
    int counter = count_if(v.begin(), v.end(), [](int op) {return op < 0; });
    cout << "Number of negative elemetns\n ";
    cout << counter << "\n";
 
    
    
    
    for (int i = 1; i < v.size(); ++i) {
        v.erase(v.begin() + i);
    }
    cout << "Removing odd elements:\n";
    printV(v);
 
 
 
 
 
    vector<float>::iterator it;
        it = max_element(v.begin(), v.end());
    if (it != v.end())
    {
        int index = it - v.begin();
        cout << index << endl;
    }
 
 
 
 
 
    system("pause");
    return 0;
}
Былбы благодарен если поможете
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2016, 16:42
Ответы с готовыми решениями:

STL. Алгоритм copy()
Здравствуйте. Решаю задачку из учебника лафоре. Звучит она следующим образом: Алгоритм copy()...

С++ Builder STL copy/sort multiset
есть две проблемы: 1) ф-ция copy не компилируеться multiset&lt;double&gt; MS,MS2;...

Продемонстрировать работу стандартной функции
char *strncpy(char *s1, const char *s2, size_t n); Копирует не более n символов из строки s2 в s1...

Создать полиморфный объект и продемонстрировать работу функций
Есть классы: class A { public: virtual void f() {} }; class B : public A { public:...

Создать класс пользовательского типа, продемонстрировать работу функций-членов
Ребят новичок в C++ Помогите разобраться в задании что да как если можете хотя бы примерчиков кода...

6
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,494
11.06.2016, 20:50 2
У тебя же есть поиск максимального.
0
XapakmepoM
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 10
12.06.2016, 15:34  [ТС] 3
Используя ваш вектор, продемонстрируйте работу алгоритмов STL copy, немогу это зделать :/
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,494
12.06.2016, 16:00 4
Ну скопируй в другой вектор. Или из массива в свой.
0
XapakmepoM
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 10
12.06.2016, 16:03  [ТС] 5
Я пробовал искал примеры несмог. Можно хоть какой мини примерчик ?
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,494
12.06.2016, 16:23 6
C++
1
2
3
4
float arr[3] = {5, 6, 7};
int sz = v.size();
v.resize(sz + 3);
std::copy(arr, arr + 3, v.begin() + sz);
Элементы массива добавятся в конец вектора.
0
XapakmepoM
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 10
12.06.2016, 16:35  [ТС] 7
спасибо )
0
12.06.2016, 16:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2016, 16:35

Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу
помогите создать класс любой можно про автомобиль,мяч,прямоугольник и тд...,чтобы были...

Использование алгоритмов STL
Здравствуйте. Ребят пожалуйста решите 2 простенькие задачки, потратьте немного своего времени,...

Реализация алгоритмов библиотеки STL
Ребят помогите пожалуйста, как создать програмку, которая бы создавала массив 4 на 3, и заполняла...


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

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

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