Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 60
1

Вектор. Итератор с командой replace

08.04.2020, 00:23. Показов 1621. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из всего написанного в этом коде не работает только итератор "rep"(36 строка) Вроде все делаю по инструкции ввел параметры как надо, но он выдает ошибку которую я не понимаю как это исправить ? Ошибка : E0415 Нет подходящего конструктора для преобразования...
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
#include <iostream>
#include<vector>
#include <algorithm>
#include<ctime>
using namespace std;
bool digit(int value)
{
    if (value % 10 != (value - value % 10) / 10 && value > 9)
        return true;
    else
        return false;
}
int main()
{
    srand(time(0));
    setlocale(0, "");
     int a;
     cout << "Введите кол-во элементов вектора :";
     cin >> a;
     
    vector<int> vec (a);
    int lol;
    //заполнение и вывод вектора
    for (int i = 0; i < vec.size(); i++)
    {
        vec[i]=rand() % 100;
        cout << vec[i] << " ";
    }
    /*vec[5] = 55;
    vec[6] = 66;
    */
    //нахождение максимального числа и присвоение максимальным числам значение 0
    vector<int>::iterator max = max_element(vec.begin(), vec.end());
    lol = *max;
    //vec.replace(vec.begin(), vec.end(), lol, 0);
    vector<int>::iterator rep = replace(vec.begin(), vec.end(),lol,0);
    /*for (int i = 0; i < vec.size(); i++)
        if (vec[i] == lol)
            vec[i] = 0;
            */
    //вывод измененного вектора 
    cout << endl << "Измененный вектор :" << endl;
    for (int i = 0; i < vec.size(); i++)
        cout << vec[i] << " ";
    //удаление чисел не имеющих одинаковых цифр в наборе
    /*int score = 0;
    for (int i = 0; i < vec.size(); i++)
    {
        if (vec[i] % 10 != (vec[i] - vec[i] % 10) / 10 && vec[i] > 9)
        {
            vector<int>::iterator rem = remove(vec.begin(), vec.end(), vec[i]);
            score++;
        }
    }
   */
    vector<int>::iterator rem = remove_if(vec.begin(), vec.end(),digit);
    vec.erase(rem, vec.end());
   //vec.resize(vec.size() - score);
    //вывод вектора
    cout << endl << "Измененный вектор v2 :" << endl;
    for (int i = 0; i < vec.size(); i++)
        cout << vec[i] << " ";
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2020, 00:23
Ответы с готовыми решениями:

Вектор и итератор
Почему где не смотрел всегда содержимое вектора смотрят через итераторы)) Решил попробывать как...

Вектор и итератор с++
//////////////////// /////////// Задание: Элементы вектора D случайным образом перемешаны....

Вектор и его итератор
На сколько мне известно,векторы выполняют вставку и удаление в X позицию контейнера на которую...

Итератор и массив вектор
Здравствуйте, 1)Немогу сообразить, вот есть вектор: Vector&lt;string&gt;massiv; massiv=&quot;0&quot;;...

3
Мозгоправ
1744 / 1038 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
08.04.2020, 00:29 2
Лучший ответ Сообщение было отмечено VitSarMan как решение

Решение

VitSarMan, std::replace() ничего не возвращает (тип возвращаемого значения void). Поэтому только так:
C++
1
    replace(vec.begin(), vec.end(),lol,0);
2
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 60
08.04.2020, 00:30  [ТС] 3
Лучший в мире, спасибо.
0
6 / 4 / 2
Регистрация: 11.01.2020
Сообщений: 7
08.04.2020, 00:43 4
Все дело в том что невозможно переменной передать результат работы функции replace, сами подумайте, что такая переменная будет содержать в итоге?
Замените вот эту строку:
C++
1
replace(vec.begin(), vec.end(), *max, 0);
1
08.04.2020, 00:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2020, 00:43
Помогаю со студенческими работами здесь

Вектор.итератор ошибка в проге
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main() {...

Передать итератор на шаблонный вектор в функцию
Здравствуйте. Есть два вектора std::vector&lt;Player&gt; players; // Player - структура с двумя...

Какой должен быть итератор для константной ссылки на вектор?
Есть вектор, он передается в функцию так: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace...

Написать процедуру которая возвращает вектор очков, набранных каждой командой
Добрый вечер! Помогите пожалуйста с задачей, паскаль изучаю совсем недавно. Буду благодарна)) ...

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание:...

Особый итератор словаря. Итератор возвращающий нужные комбинации
Немогу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru