Пробег по строчкам матрицы int arr[N][N];:
Способ 1:
for ( int row = 0; row <= N - 1; row++ ) {
for ( int col = 0; col <= N - 1; col++ ) {
arr[row][col] = какое то действие;
}
}
Способ 2:
for ( int row = 0; col = 0; row <= N - 1;) {
arr[row][col] = какое то действие;
col++;
if ( col == N) {row++; col = 0; }
}
Другие языки программирования и технологии
С++ Какой из способов по вашему лучше и главное почему? Спасибо.
А лучшую оптимизацию обеспечивает Intel c++ compiler
Циклы оптимизируются компилятором лучше, чем отдельные действия. И выглядят проще.
for ( int row = 0; col = 0; row <= N - 1;)
; должно быть 2, правильней хоть так
for ( int row = 0, col = 0; row <= N - 1; col++)
или чтот подобное
ну и лучше по читаемости
for ( int row = 0; row < N; row++ )
for ( int col = 0; col < N; col++ )
arr[row][col] = какое то действие;
отступы здесь не показаны, но так лучше.
Ну и переменные я бы писал так
for ( int i = 0; i < N; i++ )
for ( int j = 0; j < N; j++ )
arr[i][j] = какое то действие;
так как в математике строка есть i столбец j обычно
; должно быть 2, правильней хоть так
for ( int row = 0, col = 0; row <= N - 1; col++)
или чтот подобное
ну и лучше по читаемости
for ( int row = 0; row < N; row++ )
for ( int col = 0; col < N; col++ )
arr[row][col] = какое то действие;
отступы здесь не показаны, но так лучше.
Ну и переменные я бы писал так
for ( int i = 0; i < N; i++ )
for ( int j = 0; j < N; j++ )
arr[i][j] = какое то действие;
так как в математике строка есть i столбец j обычно
конечно же первый, потому, что он лучше читается
только вместо "<= N - 1" надо " < N"
второй код придётся изучать, и поняв,
что его можно было написать проще
нелестно отозваться об авторе
только вместо "<= N - 1" надо " < N"
второй код придётся изучать, и поняв,
что его можно было написать проще
нелестно отозваться об авторе
Я бы написал так (если порядок обхода не имеет значения):
for (int row = N; --row >= 0; )
for (int col = N; --col >= 0; )
Однако согласен с предыдущими ответами, что лучше доверить оптимизацию циклов компилятору. Так же согласен, что "<= N - 1" лучше заменить на " < N".
for (int row = N; --row >= 0; )
for (int col = N; --col >= 0; )
Однако согласен с предыдущими ответами, что лучше доверить оптимизацию циклов компилятору. Так же согласен, что "<= N - 1" лучше заменить на " < N".
Мазуркевич Валерий
Блин класс спасибо)
Короче с указателем:
for(int *i=&arr[0][0], *j=&arr[N][N]; i<j; i++) *i = действие;
for(int *i=&arr[0][0], *j=&arr[N][N]; i<j; i++) *i = действие;
Мазуркевич Валерий
Я не понял, простите, ни хрена
До указателей еще не дошел )
До указателей еще не дошел )
Андрей Золотарёв
Круто! Но есть одно "но". Этот вариант не годится, если важно знать координаты ячейки.
Похожие вопросы
- Помогите с проблемой,Есть ли или существует метод-способ востоновить данные,файлы с карты памяти телефона.
- Какие способы 3д-моделирования головы сейчас популярны?
- Каие есть способы создания сайта
- есть какой-нибудь способ растровую картинку разделить на два цвета?
- Есть ли способ программно разлечить компьютерное железо, по какому либо коду материнки или другими способами.
- Существует ли способ взлома zip
- Помогите пожалуйста! Лучший ответ конечно будет отблагодарён!!!!Нужно взломать Rar архив любым способом!
- О САМОМ НАИПРОСТЕЙШЕМ способе создания сайта...
- В паскале нужно разбить целое число на три слогаемых, всевозможными способами.
- на что классифицируются системы счисления по способу изображения чисел?