Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
║XLR8║
1041 / 830 / 254
Регистрация: 25.07.2009
Сообщений: 4,121
Записей в блоге: 5
1

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

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

Есть массив:
C++
1
2
const int n = 10;
int v[n][n];
Как найти сумму элементов его столбца используя STL?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2013, 13:33
Ответы с готовыми решениями:

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

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

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

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

5
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
17.12.2013, 14:01 2
Боюсь, что проще, чем обычным циклом - никак... Если для строк - другое дело, а для столбцов... Или матрицу транспонировать сначала. Могу ошибаться.
0
║XLR8║
1041 / 830 / 254
Регистрация: 25.07.2009
Сообщений: 4,121
Записей в блоге: 5
17.12.2013, 14:44  [ТС] 3
Ну так транспонирование матрицы дольше писать чем 2 вложенных цикла.
0
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
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
║XLR8║
1041 / 830 / 254
Регистрация: 25.07.2009
Сообщений: 4,121
Записей в блоге: 5
17.12.2013, 15:34  [ТС] 5
ForEveR, посмотрел реализацию accumulate с BinaryOperation, понял как суммируется, но остался вопрос почему
C++
1
std::begin(v), std::end(v)
делает проход только по строках а не по всему массиву? Это из-за того что там типа ссылки на массивы идут и итератор сразу скачет на следующий массив пропуская целую строку?
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.12.2013, 15:37 6
Цитата Сообщение от outoftime Посмотреть сообщение
делает проход только по строках а не по всему массиву?
Что такое двумерный массив? Это массив массивов, поэтому итерация через std::begin()/end() идет по массивам. Ну а дальше, нужно просто взять правильный индекс (т.е. столбец) из этого массива.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2013, 15:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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