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

Перевернуть строки в матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача http://www.cyberforum.ru/cpp-beginners/thread1050470.html
Рекомендации к задаче: 1. Имя файла задавать в командной строке. Если оно там не был задан, то после соответствующего запроса имя вводится пользователем. 2. Использовать динамическое...
C++ файлы в С file=fopen("file.txt","r"); for(i=0;;i++) {do {n=fgetc(file); printf("%c",n); } while (n!=EOF); break;} fclose (file); http://www.cyberforum.ru/cpp-beginners/thread1050469.html
C++ как засунуть условно-бесконечный цикл
еще позавчера как-то умудрился, но задача решена была неверно, сейчас уже мозг потек... #include <iostream> #include <cmath> #define pi 3.14159 using namespace std; double circle_area(double...
C++ Добавляем строку и столбец в дин. 2-ный массив
Добавляем строку и столбец в дин. 2-ный массив. Строку и столбец указываем с клавиатуры. Долго крутил- вертил и запутался в корни. Вот мой код: #include "stdafx.h" #include <Windows.h> #include...
C++ Перевод кода из Pascal в C++ http://www.cyberforum.ru/cpp-beginners/thread1050452.html
Помогите пожалуйста)) Дано: A 5*4 формируемый массив B 5*4, где bij=i+3,если i>=j j-2 - иначе, i=1..5, j=1..4 Условия задачи: Определить номера строк матриц A и B, содержащих min элементы...
C++ Найти два равных элемента массива Текст задачи:Два равных элемента.Дан целочисленный двумерный массив А размера nxm.Известно что среди его элементов два и только два равны между собой.Напеатать их индексы Прошу помочь разобраться... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
23.12.2013, 03:12
Цитата Сообщение от outoftime Посмотреть сообщение
first < last; )
* * * * * * std::iter_swap(first++, last++);
Ничего, что разница между first и last всегда const и first никогда last не догонит

Добавлено через 1 минуту
И что здесь
Цитата Сообщение от outoftime Посмотреть сообщение
for (auto it = std::begin(a); it != std::end(a); it += 3)
будет падение при n некратном 3?

Добавлено через 5 минут
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
#include <iostream>
#include <iterator>
#include <algorithm>
 
template<size_t N, size_t M>
void revert(int (&a)[N][M]) {
    for (auto it = std::begin(a); it < std::end(a); it += 3)
        for (int *first = *it, *last = *it + M-1; first < last;
            std::iter_swap(first++, last--) );
}
 
int main()
{
    const int n = 10, m = 10;
    int a[n][m];
    for (int i=0; i < n; i++)
        for (int j=0; j < m; j++)
            a[i][j] = i*m + j;
 
    revert(a);
 
    for (int i=0; i < n; i++)
    {
        for (int j=0; j < m; j++)
            std::cout << a[i][j] << " ";
        std::cout << std::endl;
    }
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru