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

Все отрицательные элементы массива перенести в начало, а все остальные - в конец - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать класс vector3D, задаваемый тройкой координат http://www.cyberforum.ru/cpp-beginners/thread168301.html
Создать класс vector3D, задаваемый тройкой координат. Обязательно должны быть реализованы: сложение и вычитание векторов, скалярное произведение векторов, умножение вектора на скаляр, вычисление...
C++ В последовательности вещественных чисел подсчитать произведение чисел, кратных 3 В последовательности вещественных чисел подсчитать произведение чисел, кратных 3. http://www.cyberforum.ru/cpp-beginners/thread168291.html
C++ Список.
Приведите пожалуйста пример списка. Список представляет собой последовательность чисел. С простыми функциями : добавить число в список, удалить число в списке, вывести список на экран, вывести...
C++ Реализация m-ичного поточного шифрования
Здравствуйте. Задание такое: Реализовать m-ичное (m=8) поточное зашифрование(расшифрование) файла с использованием схемы разворачивания ключа из pin-кода (пароля) небольшой длинны на основе...
C++ Растеризация кривой второго порядка http://www.cyberforum.ru/cpp-beginners/thread168274.html
Есть функция, к примеру ax^2+bx+c, необходимо растеризовать ее с устранением ступенчатости. Подскажите каким алгоритмом это осуществлять? Отобразить изображение функции в массиве пикселей. P.S....
C++ Заполнить массив случайными числами по возрастанию и убыванию Случайными числами 0..700 по возрастанию и убыванию подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
2302 / 1672 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.09.2010, 22:11
Светик@, решение с помощью std::stable_partition
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iterator>
#include <iostream>
#include <functional>
 
int main() {
  int arr[] = { -1, 2, 4, 5, -4, -6, 3, -4 };
  
  std::stable_partition(arr, arr + sizeof(arr) / sizeof(arr[0]), std::bind2nd(std::less<int>(), 0));
  
  std::copy(arr, arr + sizeof(arr) / sizeof(arr[0]), std::ostream_iterator<int>(std::cout, " "));
  
  return 0;
}
Результат: http://codepad.org/I6485Ozy
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru