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

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

Войти
Регистрация
Восстановить пароль
 
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
#1

Вопрос про цикл for - C++

12.04.2010, 10:54. Просмотров 881. Ответов 9
Метки нет (Все метки)

Скажите, а есть ли какая-то разница в записях:
C++
1
for (int i=0; i<n; i++)
и
C++
1
for (int i=0; i<n; ++i)
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 10:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос про цикл for (C++):

Вопрос про цикл. - C++
Добрый день. Попал в тупик, не знаю как закрутить cin&gt;&gt; в цикл подскажите пожалуйста:). Вот собственно задание: Написать функцию,...

вопрос про указателей - C++
вот напр эта строка int *m=new int; это как я понял создается указатель?тогда что такое new int?

Вопрос про указатели - C++
#include &lt;iostream.h&gt; int main() { int x; int *Pointer; pointer = &amp;x; cout &lt;&lt; pointer; cout &lt;&lt; *ponter; return 0; ...

Вопрос про наследование. - C++
Добрый день всем! Возможно ли создать производный класс в который будут помещены 2 объекта базового класса с возможностью...

Вопрос про outtextxy() - C++
Если в графическом режиме выводить текст с помощью функции outtextxy() поверх другого текста, то новый текст сливается со старым. Прошу...

Вопрос про табуляцию в C++ - C++
Символ табуляции он одновременно переносит курсор на след.строку и выравнивает строки?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DartDayring
13 / 13 / 5
Регистрация: 10.02.2010
Сообщений: 72
12.04.2010, 11:05 #2
Разница есть: ++i увеличивает значение. а потом возвращает его. i++ возвращает значение, а затем увеличивает его.
0
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:05  [ТС] #3
Это понятно. Но применительно к циклу for - есть разница?
0
Lаmer
7 / 7 / 4
Регистрация: 24.03.2010
Сообщений: 25
12.04.2010, 11:06 #4
Разница есть. Префиксная и постфиксная форма инкремента. В префиксной - сначала модифицируется параметр, затем выполняются действия. В постфиксной - наоборот - сначала выполняются действия, затем модифицируется параметр.
0
DartDayring
13 / 13 / 5
Регистрация: 10.02.2010
Сообщений: 72
12.04.2010, 11:07 #5
Цитата Сообщение от ivpoed Посмотреть сообщение
Но применительно к циклу for - есть разница?
разница есть
0
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:15  [ТС] #6
Просто сколько пробовал в разных циклах менять ++i на i++ - результат один и тот же.
Внутри цикла счётчик (int i) те же значения принимает в одинаковые итерации циклов.
В чём тогда различие с точки зрения цикла?
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
12.04.2010, 11:22 #7
DartDayring, Lаmer, ivpoed, если в форе кроме этих трех действий указать еще четвертое, пятое и т.д., которые учитывают значение i то разница есть. Если в форе нет дополнительных действий то для тела фора разницы нету. Посмотрите программу
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int main()
{
    int i;
    for(i = 0; i < 10; std::cout<<++i<<'\t')
        std::cout<<"for "<<i<<std::endl;
    std::cout<<'\n'<<std::endl;
    for(i = 0; i < 10; std::cout<<i++<<'\t')
        std::cout<<"for "<<i<<std::endl;
    return 0;
}
Результат
Код
for 0
1       for 1
2       for 2
3       for 3
4       for 4
5       for 5
6       for 6
7       for 7
8       for 8
9       for 9
10

for 0
0       for 1
1       for 2
2       for 3
3       for 4
4       for 5
5       for 6
6       for 7
7       for 8
8       for 9
9
0
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
12.04.2010, 11:51  [ТС] #8
Вот оно как. Понял, спасибо!
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
12.04.2010, 14:38 #9
Цитата Сообщение от ivpoed Посмотреть сообщение
Скажите, а есть ли какая-то разница в записях:
Which is more efficient: i++ or ++i?
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
12.04.2010, 19:07 #10
При организации цикла на целочисленных переменных разницы нет. Если же использовать хитронавороченные итераторы и аналогичные объекты, стоимость копирования/уничтожения которых может оказаться велика, надо использовать ++i (почему - объясняется по приведённой rangerx ссылке). Многие пишут ++i в любом случае, даже с целочисленными переменными, для единообразия и выработки привычки писать правильный инкремент.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 19:07
Привет! Вот еще темы с ответами:

Вопрос про палиндромы - C++
Такая вот задачка по програмированию С++: Ввести рядок символов и составить масив слов-палиндромов (читаются одинаково с права на лево и...

Вопрос про friend - C++
Вот мой код. #include&lt;iostream&gt; using namespace std; class Bottle; class Carton { public: Carton(const Bottle&amp; xBottle) {...

Вопрос про конструктор - C++
цитата исходного кода из книги: class stock{ ... public: stock(); //Типа объявление конструктора по умолчанию чтоли... ...

Вопрос про getline - C++
Читая ман по getline, я наткнулся на интересный для меня момент:DESCRIPTION getline() reads an entire line from stream, storing...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.04.2010, 19:07
Ответ Создать тему
Опции темы

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