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

Вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распечатать введенное предложение, удалив из него слова, которые состоят менее, чем из трех букв http://www.cyberforum.ru/cpp-beginners/thread251476.html
помогите составить программу: Распечатать введенное предложение, удалив с него слова, котоорые состоят менее, чем из трех букв
C++ работа с классами в С++ Пусть есть class.срр, в котором описан класс MyClass{ public: int i; ... } Есть файл main.cpp, в нем я использую MyClass и хочу изменить переменную i(из class.cpp). Изменения,... http://www.cyberforum.ru/cpp-beginners/thread251469.html
C++ Шифрование строк
Реализов функцию шифрования и дешифрования строк. принцип шифрования : на все биты каждого символа наложить восьми битную маску (операция XOR), затем поменять местами четные и нечетные биты. после...
Вектор В[1:15] сформировать из целых случайных чисел в диапазоне [-10 10] C++
Вектор В сформировать из целых случайных чисел в диапазоне . а) найти произведение элементов больших - 2 и сумму последних 10 элементов б) удалить минимальный элемент вектора в) получить...
C++ Конвертация char * -> WideString http://www.cyberforum.ru/cpp-beginners/thread251446.html
Ошибки там, где стоят ковычки с пробелом внутри. wchar_t * ptr; ptr = strtok(ADODataSet1FIO->Value, " "); while( i < 2 ) { ptr = strtok(NULL, " "); i++; } ...
C++ Где посмотреть исходники типа string Подскажите плиз где посмотреть исходники типа string. Тоесть интересует методы работы со строками, а точнее как они устроены. Допустим string.append, insert. И интересует как устроены стандартные... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
03.03.2011, 23:48
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
#include <vector>
#include <algorithm>
#include <numeric>
 
 
class RandomGenerator {
 public:
  RandomGenerator(int min, int  max) : min_(min), max_(max) {
    srand(time(NULL));
  }
  inline int operator()() {
    return rand() % (max_ - min_ + 1) + min_;
  }
 private:
  int min_, max_;
};
 
int MultiplyInRange(int a, int b) {
  return ((b >= -3 && b <= 3) ? a * b : a);
}
 
int SumPositive(int a, int b) {
  return ((b > 0) ? a + b : a);
}
 
void Print(int a) {
  printf("%4d", a);
}
 
int main(int argc, char *argv[]) {
  std::vector<int> array(15);
 
  std::generate(array.begin(), array.end(), RandomGenerator(-10, 10));
 
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  // произведение элементов в диапазоне [-3,3]
  int multiplied   = std::accumulate(array.begin(), array.end(),
                                     1, MultiplyInRange);
 
  // сумма положительных элементов
  int sum_positive = std::accumulate(array.begin(), array.end(),
                                     0, SumPositive);
 
  printf("Mult [-3:3]:  %3d\nSum positive: %3d\n", multiplied, sum_positive);
 
  // удалить минимальный элемент вектора
  array.erase(std::min_element(array.begin(), array.end()));
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  // среднее арифметическое всех (14) эелементов массива
  float average = std::accumulate(array.begin(), array.end(), 0) /
                  static_cast<float>(array.size());
 
  // заменить максимальный элемент вектора среднеарифметическим
  // значением последних 15 элементов
  *std::max_element(array.begin(), array.end()) = average;
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  std::vector<int>::iterator max_first_ten = std::max_element(array.begin(),
                                             array.begin() + 10);
  std::vector<int>::iterator max_last_ten = std::max_element(array.end() - 10,
                                             array.end());
  // поменять местами максимальные элементы из первых 10 и последних
  // десяти элементов вектора
  std::swap(*max_first_ten, *max_last_ten);
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
  return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru