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

Отсортировать масив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ directshow http://www.cyberforum.ru/cpp-beginners/thread597869.html
гдe скaчaть directshow ? дaйтe ссылку
C++ Структуры и классы Помогите пожалуйста, полная задница) Во всех заданиях, помимо указанных в задании операций, обязательно должны быть реализованы следующие методы: • метод инициализации Init; • ввод с клавиатуры... http://www.cyberforum.ru/cpp-beginners/thread597868.html
C++ Программа "Фокус"
Люди добрые помогите еще разок. Я токо начинаю заниматься программированием поэтому трудно ваще что то делать, только самое элементарное (( для вас это ведь легко. Могу заплатить. P.S Интерфейс...
Классы С++ C++
Даны классы:Корабль, кадры, капитан, пароход, матрос, парусник Запросы: 1)Вывести перечень сотрудников для указанного судна. 2)Вывести наименование судна по ФИО капитана 3)Вывести количество...
C++ В данной действительной квадратной матрице A[N, M] найти сумму элементов строки http://www.cyberforum.ru/cpp-beginners/thread597855.html
В данной действительной квадратной матрице A найти сумму элементов строки, в которой расположен элемент с наименьшим значением, Предполагается, что такой элемент единственный
C++ Перегрузка в c++ Зачем нужно использовать перегрузку в c++? Этот вопрос будет у меня на экзамене, поэтому хочу услышать ваши версии подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
06.06.2012, 17:10
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
#include <vector>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(-10, 20);
    const std::size_t M = 20;
    int A[M];
    std::vector<int> vind, v; 
    std::generate(A, A + M, [&uid, &gen] {return uid(gen); } );
    for (std::size_t i=0; i < M; i++)
    {
        std::cout<< A[i]<< " ";
        if(A[i] >= 0)
        {
            vind.push_back(i);
            v.push_back(A[i]);
        }
    }
    std::sort(v.begin(), v.end());
    auto it = v.begin();
    std::for_each(vind.begin(), vind.end(), [&it, &A](const int i) {A[i] = *it++; } );   
    std::cout<< std::endl;    
    std::copy(A, A + M, std::ostream_iterator<int> (std::cout, " ") );
    return 0;
}
http://liveworkspace.org/code/d2bc4d...1595f305930967
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru