Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/89: Рейтинг темы: голосов - 89, средняя оценка - 4.94
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93

Найти минимальные в векторе

16.11.2012, 14:21. Показов 17678. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в векторе n элементов, необходимо сделать следующее - находить минимальное среди элементов таким образом:

b1,min(b1,b2),min(b1,b2,b3)...min(bn).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2012, 14:21
Ответы с готовыми решениями:

Найти сумму и произведение эллементов в векторе, найти наименьшую цифру в числе N
Помогите пожалуйста решить 2 задачи. 1)Найти сумму и произведение элементов заданного случайным образом целочисленного вектора V длиной ...

Найти минимальные элементы в каждой строке. Найти максимальный из этих элементов
Для всех вариантов: - Ввести произвольную размерность квадратной матрицы в интервале 1..10. - Предложить ввод данных (чисел целого...

Найти слово в векторе
найти слово в строках , в векторе и вывести эту строку на экран ...помогите , пожалуйста , исправить ошибку ...заранее благодарю ...

13
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
16.11.2012, 14:27
не понял каким образом?
Что это за последовательность b1,min(b1,b2),min(b1,b2,b3)...min(bn)?
Чем предлагаемый способ отличается от классического нахождения минимума
C++
1
2
3
4
min=0;
for (int i=1; i<v.size(); i++)
  if (v[i]>v[min]) min=i;
return v[min];
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 14:40
snw, так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <iterator>
 
 
int main() {
   int vector[] = {1, 2, 3, -45, 324, -55, 23, -34, 6};
 
   std::size_t const size = sizeof (vector) / sizeof (*vector);
   int result[size];
   for (std::size_t i = 0; i != size; ++i) {
      result[i] = *std::min_element(&vector[0], &vector[0] + i + 1);
   }
 
   std::copy(&result[0], &result[0] + size, std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://ideone.com/rCjkIJ
1
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
16.11.2012, 14:41  [ТС]
Как я сам понял надо в каждый последующий элемент вектора, помещать минимальный элемент, из числа элементов, которое зависит от порядкового номера поэтому так -
b1,min(b1,b2),min(b1,b2,b3)...
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 14:43
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
 
 
int main() {
   int vector[] = {1, 2, 3, -45, 324, -55, 23, -34, 6};
 
   std::size_t const size = sizeof (vector) / sizeof (*vector);
   int result[size];
   result[0] = vector[0];
   for (std::size_t i = 1; i < size; ++i) {
      result[i] = std::min(result[i - 1], vector[i]);
   }
 
   std::copy(&result[0], &result[0] + size, std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://ideone.com/rCjkIJ
1
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.11.2012, 14:44
gray_fox, странное сочетание
C++
1
2
3
4
#include <algorithm>
#include <iterator>
//...
std::min_element
и
C++
1
2
3
int vector[] = {1, 2, 3, -45, 324, -55, 23, -34, 6};
 
   std::size_t const size = sizeof (vector) / sizeof (*vector);
какое-то непоследовательное использование STL
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 14:48
Цитата Сообщение от I.M. Посмотреть сообщение
какое-то непоследовательное использование STL
Не совсем понял. Последовательно - это с std::vector, или как?

Добавлено через 1 минуту
а std::min_element здесь конечно не нужен.
0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.11.2012, 14:49
gray_fox, угу, std::vector или std::array. Смотря что нужно от контейнера + итераторы. Хотя на итераторах не настаиваю многие индексы больше любят
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 14:52
Цитата Сообщение от I.M. Посмотреть сообщение
std::array
Ну это C++11-only, как и список инициализации.
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
16.11.2012, 17:24  [ТС]
А по поводу итераторов, я пытался сделать через них, но выскакивает ошибка - vector iterator not incrementable

Так не идет

Добавлено через 39 минут
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
#include <fstream>
#include <vector>
#include <iterator>
#include <ctime>
#include <algorithm>
 
using namespace std;
 
struct RandomInt
{
int operator()(){return (rand() % 30 + (-10));}
};
 
 
std::ostream &operator << (std::ostream &stream, std::vector<int> &vector)
{
    copy(vector.begin(), vector.end(), std::ostream_iterator<int>(stream, " "));
    return stream;
}
 
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL,"Rus");
    
    ofstream out("output.txt");
    vector<int> sequence;
    vector<int> vec;
    
    vector<int>::iterator it;
    
    generate_n(back_inserter(sequence), 4 + rand() % 10, RandomInt());
    
    size_t const size = 50;
    
    int result[size];
    
    
    out << sequence << " ";
    int i;
    for(it = sequence.begin(), i = 1; it < sequence.end(); ++it, ++i)
    {
            
        result[i] = min(result[i - 1], *it);
        
        vec.push_back(result[i]);
 
    }
 
    out << endl << vec << " ";
}
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 17:35
Попробуй так:
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
#include <fstream>
#include <vector>
#include <iterator>
#include <ctime>
#include <algorithm>
 
// using namespace std;
 
struct RandomInt
{
int operator()(){return (rand() % 30 + (-10));}
};
 
 
std::ostream &operator << (std::ostream &stream, std::vector<int> &vector)
{
    copy(vector.begin(), vector.end(), std::ostream_iterator<int>(stream, " "));
    return stream;
}
 
 
using namespace std;
 
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL,"Rus");
    
    ofstream out("output.txt");
    vector<int> sequence;
    vector<int> vec;
    
    vector<int>::iterator it;
    
    generate_n(back_inserter(sequence), 4 + rand() % 10, RandomInt());
    
    // size_t const size = 50;
    
   //  int result[size];
    
    
    out << sequence << " ";
    if (!sequence.empty()) {
        vector<int>::const_iterator cIt = sequence.begin();
        vec.push_back(*cIt);
        while (++cIt != sequence.end()) {
           vec.push_back(std::min(vec.back(), *cIt));
        }
    }
    // int i;    
    // for(it = sequence.begin(), i = 1; it < sequence.end(); ++it, ++i)
    // {
            
        // result[i] = min(result[i - 1], *it);
        
        // vec.push_back(result[i]);
 
    // }
 
    out << endl << vec << " ";
}
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
16.11.2012, 17:42
Цитата Сообщение от gray_fox Посмотреть сообщение
Попробуй так:
Человек только начинает программировать, и начинать это следует с переменных и действий над ними,
С функций и массивов,
с битовых операций и размещения переменных в памяти
с адресов этих переменных, с понятия указателей.
далее переходить к структурам данным,
строить самостоятельно стеки/очереди/деревья/списки
научить создавать собственные шаблоны для всего этого.
Начать осваивать ООП...
и затем уже перейти к тому, что в STL это тоже реализовано
Иначе, человек не поймёт, какие действия производит процессор при "vec.push_back(*cIt);"
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
16.11.2012, 17:47
Kuzia domovenok, :\ я просто поправил его код, и там тоже было это ваше СТЛ.
0
10 / 10 / 4
Регистрация: 11.10.2012
Сообщений: 93
19.11.2012, 14:18  [ТС]
C++
1
vec.push_back(*cIt);
положить в вектор vec, данные находящиеся по адресу *cIt.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2012, 14:18
Помогаю со студенческими работами здесь

Найти все минимальные значения в заданном диапазоне, удалить эти числа и найти новое минимальное значение
Здравствуйте дорогие пользователи нужна срочно помощь на экселе Дан ряд-диапазон чисел. Найти все минимальные значения в этом...

Найти соответствующее значение в векторе
Доброго времени суток. Решаю очередные задачи в книге &quot;Принципы и практика с использованием C++&quot; наткнулся на крайне непонятный мне...

Найти среднее арифметическое в векторе
Среднее арифметическое ненулевых элементов, стоящих после отрицательных элементов class Program { static void...

В задаваевом целочисленном векторе найти
1)В задаваевом целочисленном векторе найти: min+max 2)В задаваемом векторе a размерности n каждую a1 компоненту заменить на величину:...

В векторе найти сумму элементов
Помогите пожалуйста с решением


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru