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

Упорядочить вектор так, что бы сначала шли числа кратные 3, потом с остатком 2 при делении на 3, потом с остатком 1. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Взаимный обмен значений указателей в параметрах функции http://www.cyberforum.ru/cpp-beginners/thread1092851.html
Необходимо создать шаблонную функцию void f(int *x, float *y) в которой *х - указатель на массив, состоящий из целых чисел, *у - указатель на массив, состоящий из чисел типа float Я хотел поэлементно обменять массивы Вот что получилось template <class typename A, class typename B> void f(A *x, B *y)
C++ Необходимо отсортировать слова в строке по алфавиту Написать программу в которой вводиться рядок слов, отсортировать слова по первой букве, нужно сделать через использование функций. http://www.cyberforum.ru/cpp-beginners/thread1092848.html
Вычислить разность между максимальным и минимальным элементами массива C++
Ввести массив. Вычислить разность между максимальным и минимальным элементами. Только начал изучать с++. Объясните, пожалуйста, как это делать.
Рамка из символов,С++,циклы, C++
Как сделать рамку из символов ? на подобии этой задачки... Вводим символ и кол-во , получаем фигуру (квадрат , прямоугольник) : #include <iostream.h> void main () { int i,j,k; char ch; cout<<"westi simvol"<<endl;
C++ Перемножение матриц с использованием динамических массивов http://www.cyberforum.ru/cpp-beginners/thread1092836.html
Всем здравствуйте) Программа не считает матрицу С (С=A*B). В чём дело не понимаю. #include <iostream> #include <conio.h> using namespace std; void Gen(int **A, int **B, int n, int m, int k); void Vivod(int **A, int **B, int n, int m, int k); void Multi(int **A, int **B,double **C, int n, int m, int k);
C++ Блок-схема алгоритма Можете показать как будет выглядеть блок-схема для данного алгоритма. подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.02.2014, 21:00     Упорядочить вектор так, что бы сначала шли числа кратные 3, потом с остатком 2 при делении на 3, потом с остатком 1.
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
#include <algorithm>
#include <iostream>
#include <vector>
#include <random>
 
int main() {
 
    std::random_device rd;
    int n,x,y;
    std::cin >> n >> x >> y;
    std::uniform_int_distribution<> dis(x,y);
 
    std::vector<int> v(n);
    std::generate( v.begin(), v.end(), [&]{return dis(rd);} );
    
    
    std::sort( v.begin(), v.end(), [](int lhs, int rhs)
    {    
        int reml = lhs % 3;
        int remr = rhs % 3;
        
        if( reml == 0 ) reml = 3;
        if( remr == 0 ) remr = 3;
        return reml > remr;
    } 
    );
    
    for( int i: v )
    {
        std::cout << i << " ";
    }
    std::cout << std::endl;
 
    return 0;
}
 
Текущее время: 07:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru