![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.12.2011
Сообщений: 54
|
![]()
Здравствуйте. Нашел рекурсивную функцию (здесь приведена не полностью):
void PrintAllCombinations(const int array[], size_t N, vector<int> &v) { ... PrintAllCombinations(array+1, N-1, v); ... PrintAllCombinations(array+1, N-1, v); ... } Скажите пожалуйста, что делает операция array+1? что при операции +1 происходит с массивом? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
указатель на массив начинает указывать на след элемент.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.12.2011
Сообщений: 54
|
![]()
это не *(array+1) ли перемещает указатель на массив на следующий элемент?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
![]()
Массив это указатель. Следовательно происходит увеличение указателя.
*(array+1) - тут увеличение адреса и разыменование.
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
первое смещение указателя, второе его разименование. итог берется следующий элемент по указателю(второй если так проще) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 24.12.2011
Сообщений: 54
|
![]()
А как в таком случае переместить указатель в контейнере vector?
То есть мне в исходной функции надо вместо массива const int array[] использовать vector<my_class>. Как заменить array+1 аналогичной операцией для vector? |
![]() |
![]() |
![]() |
#7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2David Villa
использовать итераторы. для вектора можно и без них, но с итераторами тип контейнера будет неважен
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 15.05.2012 в 21:02. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 24.12.2011
Сообщений: 54
|
![]()
А можно подробнее насчет итераторов? И как можно обойтись без них в данном случае?
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
![]()
David Villa никак. Итераторы как раз и используются для перебора контейнеров.
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
![]() |
![]() |
![]() |
#10 | ||
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2David Villa
Цитата:
Цитата:
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны | Koksa | Помощь студентам | 0 | 10.10.2011 11:26 |
Запись координат в массив в реал тайм, Как записать координаты в массив | Dark19 | Visual C++ | 2 | 21.06.2011 18:45 |
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) | KARTER | Помощь студентам | 1 | 18.06.2011 19:58 |
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) | econ | Помощь студентам | 1 | 29.05.2011 22:02 |