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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
#1

std::accumulate по столбцах двумерного массива - C++

17.12.2013, 13:33. Просмотров 400. Ответов 5
Метки нет (Все метки)

Есть массив:
C++
1
2
const int n = 10;
int v[n][n];
Как найти сумму элементов его столбца используя STL?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 13:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::accumulate по столбцах двумерного массива (C++):

Сумма элементов в столбцах двумерного массива - C++
Вот собственно задание: Задан двухмерный массив вещественных чисел. Заменить все отрицательные элементы нулями и подсчитать сумму...

Сравнить элементы в столбцах двумерного массива - C++
Вечер добрый! Нужна помощь с написанием функции, есть двумерный массив - нужно вывести число столбцов, где все элементы разные. Внимание...

Сравнение элементов в столбцах двумерного массива - C++
Как реализовать с матрицей(столбцы-12, строки-20). Сравнить элементы второго и десятого столбцов.

Поиск максимальных элементов в столбцах двумерного массива - C++
Добрый вечер! Помогите пожалуйста решить задачу, я начинающий.. Сформировать векторы А и B, элементами которых являются максимальные...

Перегрузка std::end для двумерного массива - C++
Добрый день, 1) почему если закомментировать переопределение функций begin, end работает, ведь там явно не одномерный, а стандартный...

Ошибка при передаче двумерного массива в функцию std::thread - C++
Здравствуйте! Написал программу на потоки, теперь нужно передать туда двумерный массив. Пытаюсь передать по ссылке, но каждый раз...

5
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
17.12.2013, 14:01 #2
Боюсь, что проще, чем обычным циклом - никак... Если для строк - другое дело, а для столбцов... Или матрицу транспонировать сначала. Могу ошибаться.
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
17.12.2013, 14:44  [ТС] #3
Ну так транспонирование матрицы дольше писать чем 2 вложенных цикла.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
17.12.2013, 15:08 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
outoftime, В чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
 
int main()
{
   const int n = 3;
   int v[n][n] =
   {
      {1,2,3},
      {2,3,4},
      {3,5,5}
   };
   const int column_to_find = 1;
   int result = std::accumulate(std::begin(v), std::end(v), 0,
   [column_to_find](int value, int* array)
   {
      return value + array[column_to_find];
   });
   std::cout << result << std::endl;
}
3
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
17.12.2013, 15:34  [ТС] #5
ForEveR, посмотрел реализацию accumulate с BinaryOperation, понял как суммируется, но остался вопрос почему
C++
1
std::begin(v), std::end(v)
делает проход только по строках а не по всему массиву? Это из-за того что там типа ссылки на массивы идут и итератор сразу скачет на следующий массив пропуская целую строку?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
17.12.2013, 15:37 #6
Цитата Сообщение от outoftime Посмотреть сообщение
делает проход только по строках а не по всему массиву?
Что такое двумерный массив? Это массив массивов, поэтому итерация через std::begin()/end() идет по массивам. Ну а дальше, нужно просто взять правильный индекс (т.е. столбец) из этого массива.
1
17.12.2013, 15:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 15:37
Привет! Вот еще темы с ответами:

Сортировка строк двумерного std::vector'а в лексикографическом порядке - C++
Позвольте узнать... Возможно ли через vector&lt;vector&lt;double&gt;&gt; и функцию std::sort() отсортировать строки массива в лексикографическом...

Как реализовать матрицу посредством двумерного вектора? (std::vector) - C++
const int matrix_A_Columns = 12000; const int matrix_A_Rows = 25000; double matrix_A; как вот это написать с помощью вектора?

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. - C++
Транспонировать матрицу через ввод вывод функции двумерного массива.Сначала вывести ее,а потом провести транспонирование.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru