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

Перестановка элементов в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вопрос про указателей http://www.cyberforum.ru/cpp-beginners/thread60602.html
вот напр эта строка int *m=new int; это как я понял создается указатель?тогда что такое new int?
C++ Программа ввода текста с клавиатуры. задание: Составить программу, которая вводит с клавиатуры строку, содержащую до 75 символов, и выводит на экран слова из этой строки, длина которых составляет 5...8 букв. В случае отсутствия таких слов выводится соответствующее со общение. прошу помочь написать программу. http://www.cyberforum.ru/cpp-beginners/thread60601.html
сортировка вектора C++
вектор содержит нетривиальные типы данных, (class t{int , char, struct c{...}...}) необходимо отсортировать вектор по одному из полей, какая сортировка будет быстрее вставками или qsort вектор (двусвязный) наверное грамотнее было назвать его списком... меня интересует только мнение (и почему) код в состоянии написать сам
C++ Срочно. Контрольная по строкам.
Срочно хелп плз! Задача: Дана строка, содержащая от 5 до 10 русских слов, рахделенных пробелами, конец строки - точка. Вывести на экран: 1. Все слова столбцом по алфавиту. 2. Нечетные слова, с удаленными первыми буквами. 3. Все слова, поменяв в каждом местами первую и последнюю буквы. Ограничения на задаваемые (введенные) слова:...
C++ Наследование конструкторов? http://www.cyberforum.ru/cpp-beginners/thread60581.html
Сдаю лабораторную на тему наследования в С++ : #include <iostream> using namespace std; class hero { protected: int jiv; int pow; public: hero(int j, int p)
C++ Решение примера с использованием цикла Нужно до завтра написать программу с использованием Циклов для решения следующего примера: http://s57.***********/i156/0911/6d/91932d40b75b.jpg Нужно вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Хначальное до Хконечное с шагом dx и точностью e. Можно и без таблицы только решение. Помогите пожалуйста. подробнее

Показать сообщение отдельно
Rififi
2335 / 1050 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
02.11.2009, 22: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
#include <algorithm>
#include <functional>
#include <iterator>
#include <locale>
#include <iostream>
 
template <typename T1, typename T2, typename U1>
void mutate(T1 begin, T1 end, T2 out, U1 p)
{
    if (std::distance(begin, end) < 2)
        return;
    std::transform(begin, end, out, p);
}
 
template <typename T, typename U1>
std::unary_negate<std::binder2nd<U1> > X(U1 p, T v)
{ return std::not1(std::bind2nd(p, v)); }
 
template <typename T, typename U1>
void transform_positives(T begin, T end, U1 p)
{
    typedef typename std::iterator_traits<T>::value_type value_type;    
 
    T curr = begin, next;
    
    for ( ; (next = std::find_if(curr, end, X(std::greater<value_type>(), 0))) != end; curr = ++next)
        mutate(curr, next, curr, p);    
    mutate(curr, next, curr, p);
}
 
int main()
{
    setlocale(LC_ALL, "");
    int arr[] = {1,-2, 3,4,-10,5,6,7,-20,7,8,9,1,2,3,-30,4, -40, 5};
    const size_t N = sizeof(arr) / sizeof(arr[0]);
 
    std::cout << "До:\t";
    std::copy(arr, arr+N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    transform_positives(arr, arr+N, std::negate<int>());
 
    std::cout << "После:\t";
    std::copy(arr, arr+N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    return 0;
}
Вывод:
До: 1 -2 3 4 -10 5 6 7 -20 7 8 9 1 2 3 -30 4 -40 5
После: 1 -2 -3 -4 -10 -5 -6 -7 -20 -7 -8 -9 -1 -2 -3 -30 4 -40 5
Проверка: http://codepad.org/qDH36kec
 
Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru