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

Объяснить, что делает программа

14.05.2022, 14:25. Показов 690. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По условию задания, надо было вывести количество элементов, равных заданному числу M. Не совсем понял, что такое upper_bound и lower_bound, но если от верхней отнять нижнюю границу, то должно вернуть количество элементов, так как это будет разница от индекса первого числа, большего, чем заданное число М и самого числа (так как lower_bound возвращает первое число не меньшее заданного числа, а значит само число в массиве вектора). По условию задания еще надо было использовать методы бинарного поиска, но я просто сделал upper-lower, это вообще правильно? И правильно ли я понял собственный код? Ибо ответ выводит правильно, а почему это работает, до конца не понимаю.

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
    srand(time(0));
   setlocale(0,"");
   int size=200;
vector <int> v(size);
vector<int>::iterator lower, upper;
int M;
cin>>M;
 
 
for(int i=0;i<size;i++)
{
    v[i]=rand()%100;
    cout<<v[i]<<" ";
}
 
cout<<"\n\n";
sort(v.begin(), v.end());int count=0;
 
 
    lower = lower_bound(v.begin(), v.end(), M);
    upper = upper_bound(v.begin(), v.end(), M);
    
    
for(int i=0;i<size;i++)
{
    cout<<v[i]<<" ";
}
 
 
cout<<"\n\n";
cout<<endl<<endl;
 
cout<<upper-lower;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2022, 14:25
Ответы с готовыми решениями:

объяснить что делает код
Код выполняет следующее 1. пользователь должен указать какой файл открыть для разбиения 2....

Объяснить что делает строка
//s1 -строка //x -целое число //Объяснить посимвольно вот это %-15s%03d%n...

Объяснить, что делает функция, подробно
cin.rdbuf()-&gt;in_avail() Добавлено через 19 секунд И что такое rdbuf

Объяснить, что делает std::lock_guard ?
привет. Я правильно понял, что объект std::lock_guard, примененный к мьютексу в блоке кода, при...

Исправить код, объяснить, что он делает
#include &lt;iostream&gt; /* run this program using the console pauser or add your own getch,...

3
90 / 60 / 32
Регистрация: 06.08.2020
Сообщений: 219
14.05.2022, 15:37 2
Лучший ответ Сообщение было отмечено karlhildekruger как решение

Решение

upper_bound возвращает итератор на первое большее число от указанного, lower_bound - первое меньшее.
1
1710 / 1110 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
14.05.2022, 18:27 3
Цитата Сообщение от PencilTorch Посмотреть сообщение
lower_bound - первое меньшее.
*первое НЕ меньшее, i.e. равное, либо первое большее

Цитата Сообщение от karlhildekruger Посмотреть сообщение
По условию задания еще надо было использовать методы бинарного поиска, но я просто сделал upper-lower, это вообще правильно?
Эти штуки и работают бинарным поиском; можешь проверить: они не работают на неупорядоченном диапазоне.
0
90 / 60 / 32
Регистрация: 06.08.2020
Сообщений: 219
14.05.2022, 20:45 4
Folian, точно поправил, спасибо.
0
14.05.2022, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2022, 20:45
Помогаю со студенческими работами здесь

Нужно объяснить что делает элемент кода
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cmath&gt; using namespace std; int main() {...

Объяснить, что делает каждый цикл в программе
Объясните пожалуйста что делает каждый цикл for (i = 0; i &lt; n; i++) cout &lt;&lt; a &lt;&lt; &quot; &quot;;//выводим...

Нужно объяснить что делает элемент кода
Помогите пожалуйста понять, что делают cin.peek() != '\n' , cin.clear(); , while (cin.get() !=...

Можете объяснить что делает этот код?
#include &lt;iostream&gt; using namespace std; int main() { char s; cin&gt;&gt;s; ...

Объяснить, что делает данный участок кода
Надо объяснить, как реализована функция добавления элемента в стек. #include &lt;iostream&gt; using...

Не совсем понимаю что делает этот код, желательно объяснить построчно
#include &lt;iostream&gt; using namespace std; int main() { int x,i,j; float z,A,B,a; ...


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

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