Форум программистов, компьютерный форум 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++ Блок-схема алгоритма Можете показать как будет выглядеть блок-схема для данного алгоритма. подробнее

Показать сообщение отдельно
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
09.02.2014, 20:41     Упорядочить вектор так, что бы сначала шли числа кратные 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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
int main()
{
    int N, X, Y;
    cin >> N >> X >> Y;
    vector<int> vec, res_vec;
    generate_n(back_inserter(vec), N, [X, Y](){ return X + rand() % (Y - X + 1); });
    vector<int>::iterator it = find_if (vec.begin(), vec.end(), [](int x){ return x % 3 == 0; });
    while ( it != vec.end() )
    {
        res_vec.push_back(*it);
        it = find_if (it + 1, vec.end(), [](int x){ return x % 3 == 0; });
    }
    it = find_if (vec.begin(), vec.end(), [](int x){ return x % 3 == 2; });
    while ( it != vec.end() )
    {
        res_vec.push_back(*it);
        it = find_if (it + 1, vec.end(), [](int x){ return x % 3 == 2; });
    }
    it = find_if (vec.begin(), vec.end(), [](int x){ return x % 3 == 1; });
    while ( it != vec.end() )
    {
        res_vec.push_back(*it);
        it = find_if (it + 1, vec.end(), [](int x){ return x % 3 == 1; });
    }
    copy(res_vec.begin(), res_vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    system("pause");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru