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

Второй способ отсева элементов из массива? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передать объект fstream функции http://www.cyberforum.ru/cpp-beginners/thread918986.html
Здравствуйте. Хочу, чтобы функция принимала в качестве аргумента объект fstream. Примерный вид программы: #include <fstream> using namespace std; void test(fstream a){ a.open("test2.txt"); a << "123" << endl; a.close(); }
C++ Генерация уникальных чисел Посоветуйте способ генерации УНИКАЛЬНЫХ чисел, чтобы для бинарного дерева подошли... Спасибо http://www.cyberforum.ru/cpp-beginners/thread918979.html
Аргументы по-умолчанию в указателе на функцию в классе C++
В классе создал указатель на функцию void set_window_style(void(*style)(char, char)); Вот сам метод void Window::set_window_style(void(*style)(char ch1="null", char ch2="null"))
C++ Определение методов шаблонного класса
Столкнулся с такой проблемой, реализовываю итератор для шаблонного списка, при определении метода интератора вылетает ошибка вот лог : warning C4346: 'TList<T>::?$iterator_stl@$RT@BAAB@' : dependent name is not a type 1> prefix with 'typename' to indicate a type : error C2143: syntax error : missing ';' before '&' : error C4430: missing type specifier - int assumed. Note: C++ does...
C++ Вывести на экран с точностью два знака число ПИ http://www.cyberforum.ru/cpp-beginners/thread918947.html
программный код с комментариями желательно)
C++ Умные указатели Насколько я понял для того что бы предотвратить передачу права владения используют const. Код из примера: template <class T> ostream& operator <<(ostream& strm, const auto_ptr<T>& p) { if(p.get()==0) {strm<<"Null";} else { strm<<*p;} return strm; } подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 10:09     Второй способ отсева элементов из массива?
в данной задаче можно без квадратичных сложностей обойтись:
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 <cstdlib>
#include <ctime>
const int N = 10; 
 
void Init(int *a, int n)
{
   for(int i = 0; i < n; ++i)
      a[i] = rand() % 101 - 50; 
}
void Print(int *a, int n)
{
   for(int i = 0; i < n; ++i)
      std::cout << a[i] << " ";
   std::cout << std::endl;      
}
void Otsev(int *a, int &n)
{
   int i, j;
   for(i = j = 1; i < n; ++i)
      if (a[j - 1] < a[i])
         a[j++] = a[i];
   n = j;           
}
int main()
{
   int a[N], n = N;
   srand(time(NULL));
   Init(a, N);
   Print(a, N);
   Otsev(a, n);
   Print(a, n);
   return 0;    
}
 
Текущее время: 02:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru