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

Преобразование двумерного массива в одномерный - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вернуть на старт http://www.cyberforum.ru/cpp-beginners/thread645380.html
Всем привет:). Говорю сразу - я жесткий нуб. Начал изучение C++ буквально сегодня. Прошу вас, не относитесь ко мне как к идиоту, я как раз пришел на этот форум, что бы чему-то научиться. Вот у...
C++ Прочесть строку сишным способом(фопен) Добрый день. Есть необходимость прочесть определенную строку(по номеру) используя стандартный ввод/вывод си, и не используя getline(). Как это реализовать? есть функция для получения индекса начала... http://www.cyberforum.ru/cpp-beginners/thread645370.html
Как сделать MDI окна залипающими ? C++
Как создать MDI окно я разобрался. Вот хотелось бы узнать как его сделать в фреймовом окне залипающим.Тоесть чтобы допустим к краю тащишь он прилепает, или к низу. Это вообще MDI называется или может...
Функция getline(). Как исключить знаки препинания (символы)? C++
Задача следующая: Из файла source.txt прочесть слово Отправить запрос в БД Получить перевод слова Записать в файл destination.txt Пример: Читаются следующие символы: ('abc', пробел, 'bac',...
C++ Регулярные выражения в с++ http://www.cyberforum.ru/cpp-beginners/thread645330.html
Рылся рылся, нигде не нашел... Кто нибудь, объясните: 1) как установить эту библиотеку Regex. 2) Как заставить её работать. 3) И простой пример кода Пользуюсь visual 2010 там есть библиотека...
C++ Нужно сделать алгоритм, решающий задачу за время н Всем привет! Есть задача: Исходные данные В первой строке записано целое число N — количество бильярдных шаров (1 ≤ N ≤ 100000). В следующих N строках даны номера этих шаров в том порядке, в... подробнее

Показать сообщение отдельно
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
01.09.2012, 18:29
Как вариант..

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
#include <iostream>
#include <algorithm>
#include <random>
#include <vector>
 
#include <boost/multi_array.hpp>
 
const int N = 10; 
const int M = 10;   
 
int main() {
   typedef boost::multi_array <int, 2> matrix_t;
   typedef boost::multi_array_types::index_range range;
   typedef matrix_t::array_view <1>::type matrix_view;
   typedef boost::multi_array_ref <int, 1> array_ref;
   
   std::random_device random_dev;
   
   matrix_t matrix(boost::extents[N][M]);
   array_ref matrix_ref(
      matrix.data(),
      boost::extents[matrix.num_elements()]
   );
 
   std::generate(
      matrix_ref.begin(),
      matrix_ref.end(),
      std::bind(
         std::uniform_int_distribution <int>(0, 10),
         std::mt19937(random_dev())
      )
   );
   
   int number = 6;
   std::vector <int> v_result;
   for (std::size_t index = 0; index < N; index++) {
      matrix_view row_view = matrix[boost::indices[index][range()]];
      v_result.push_back(
         std::accumulate(
            row_view.begin(),
            row_view.end(),
            0,
            [number](int lhs, int rhs) -> int {
               return lhs += (rhs < number) ? rhs : 0;
            }
         )
      );
   }
   
   for (std::size_t i = 0; i < N; i++) {
      std::copy(
         matrix[i].begin(),
         matrix[i].end(),
         std::ostream_iterator <int>(std::cout, "\t")
      );
      std::cout << "\n";
   }
   
   std::cout << '\n';
   for (const auto & val : v_result) {
      std::cout << val << "\t";
   }
}
http://liveworkspace.org/code/2454d2f3cba5d6ba26c5bb64b02e58e9

Добавлено через 3 минуты
Цитата Сообщение от Мирзали Посмотреть сообщение
строки двумерного массива меньших числа n.
Пардон. Немного не так сделал. Извеняйте..
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.