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

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

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

Непонятки после php - C++

21.08.2013, 14:12. Просмотров 1007. Ответов 38
Метки нет (Все метки)

1)После php очень трудно понять что такое указатели и зачем они нужны, можете обьяснить?
2)Если вначале выполнения программы мне не известно размер массива, и даже потом его размер будет неизвестен(например какой та парсинг).Что делать?
3)Какую книжку вы бы могли посоветовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2013, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятки после php (C++):

После какого уровня c++ начинать изучать php - C++
Народ снова здравствуйте у меня снова вопрос вообщем я хочу изучить C++ и PHP хотел одновременно но на форуме мне сказали изучай сперва...

непонятки с Си - C++
вобщем вот что задали Вот что я зделал при выполнении пишет s=none(или nane-как то так)/почему так?где ошибка? у кого то так же...

непонятки - C++
у меня есть прога которая берет дабл и разделяет его на две сост. целое и дробное this->z = int(d); this->p = ( d - int(d)...

непонятки с for - C++
Издавна мучает вопрос почему некоторые используют в цикле for ( int i = n; i < m ; i++), а другая часть населения for ( int i = n; i < m ;...

Непонятки с указателями - C++
#include <iostream> using namespace std; int is_order(const int* array) { for(const int* z = array; z < array +...

непонятки с указателями - C++
Добрый день! изучаем плюсы, наткнулся на одну странную ситуацию, не могу сообразить, в чём дело... :( Есть структура - Point...

38
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,675
Записей в блоге: 3
Завершенные тесты: 1
21.08.2013, 14:18 #2
Цитата Сообщение от lesromand Посмотреть сообщение
После php очень трудно понять что такое указатели и зачем они нужны, можете обьяснить?
Кхм... достаточно обширная тема. Что конкретно не понятно?
Цитата Сообщение от lesromand Посмотреть сообщение
Если вначале выполнения программы мне не известно размер массива, и даже потом его размер будет неизвестен(например какой та парсинг).Что делать?
Можно велосипед изобретать, заодно пригодятся указатели а можете использовать, например, класс std::vector в котором всё уже готово
Цитата Сообщение от lesromand Посмотреть сообщение
Какую книжку вы бы могли посоветовать?
Литература C++


Лучшая книга по с++ для новичков
С чего начать изучение C++
Нужна книга по С++
Посоветуйте хорошую книгу по С++
Какую книгу выбрать
Книга для начинающего по С++
Посоветуйте отличную книжку для новичка по изучению С++
0
Kastaneda
Форумчанин
Эксперт С++
4656 / 2864 / 228
Регистрация: 12.12.2009
Сообщений: 7,276
Записей в блоге: 2
Завершенные тесты: 1
21.08.2013, 14:24 #3
Цитата Сообщение от lesromand Посмотреть сообщение
После php очень трудно понять что такое указатели и зачем они нужны, можете обьяснить?
Где-то пару лет назад сталкивался с PHP (совсем немного), очень нехватало указателей. Потом меня научили делать так
PHP
1
2
3
4
5
$function_ptr; // типа указатель на функцию
$function_ptr = "function1";
$function_ptr();
...
function function1() {}
очень удивила (а потом понравилась) такая гибкость, я к ней даже немного привык, но потом (к счастью) мои муки с РНР закончились и о нем больше не вспоминаю.

Кстати код выше - пример того, зачем нужны указатели.
0
lesromand
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 98
21.08.2013, 14:27  [ТС] #4
Цитата Сообщение от Croessmah Посмотреть сообщение
Кхм... достаточно обширная тема. Что конкретно не понятно?

Можно велосипед изобретать, заодно пригодятся указатели а можете использовать, например, класс std::vector в котором всё уже готово

Литература C++


Лучшая книга по с++ для новичков
С чего начать изучение C++
Нужна книга по С++
Посоветуйте хорошую книгу по С++
Какую книгу выбрать
Книга для начинающего по С++
Посоветуйте отличную книжку для новичка по изучению С++
Спасибо за быстрый ответ)

Непонятно зачем они нужны, чем они лучше переменных?Их можно удалить через delete, это понятно.Но переменные в конце выполнения программы всёравно будут удалены.
Также зачем нужны указатели на указатели?Почему напрямую не обратится у нужному указателю?

Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
Где-то пару лет назад сталкивался с PHP (совсем немного), очень нехватало указателей. Потом меня научили делать так
PHP
1
2
3
4
5
$function_ptr; // типа указатель на функцию
$function_ptr = "function1";
$function_ptr();
...
function function1() {}
очень удивила (а потом понравилась) такая гибкость, я к ней даже немного привык, но потом (к счастью) мои муки с РНР закончились и о нем больше не вспоминаю.

Кстати код выше - пример того, зачем нужны указатели.
Не совсем понял, в переменной - название функции.
Так почему же в c++ также нельзя в переменную записать название?
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2013, 14:27 #5
Цитата Сообщение от lesromand Посмотреть сообщение
1)После php очень трудно понять что такое указатели
Как работают ссылки в PHP читали? так вот это то же самое только более низкоуровневое
Цитата Сообщение от lesromand Посмотреть сообщение
Так почему же в c++ также нельзя в переменную записать название?
потому что c++ не php
0
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,675
Записей в блоге: 3
Завершенные тесты: 1
21.08.2013, 14:28 #6
Цитата Сообщение от lesromand Посмотреть сообщение
чем они лучше переменных?
Указатель - это такая же переменная, так что ничем
Просто в указателе содержится адрес какой-то памяти.

Цитата Сообщение от lesromand Посмотреть сообщение
Их можно удалить через delete, это понятно.
delete освобождает память, ранее выделенную new, но не удаляет указатель.
Цитата Сообщение от lesromand Посмотреть сообщение
Также зачем нужны указатели на указатели?
Например, чтобы можно было изменить в функции переданный указатель, или, например для имитации двумерных массивов ( или еще больше измерений, но тогда и цепочка будет больше ********* )
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
21.08.2013, 14:31 #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Можно велосипед изобретать, заодно пригодятся указатели а можете использовать, например, класс std::vector в котором всё уже готово
А почему так часто советуют использовать std::vector , а не std::list или std::deque?
По-моему, в 90% случаях, когда требуется "динамический массив", на деле нужен просто контейнер динамического размера, в котором важна возможность наращивания/удаления элементов с конца.
Для этого и используют список или дек!
Вектор же в этой роли крайне неэффективен.
Но вопрос даже не в оптимизации, а в том, ПОЧЕМУ первым советом идёт именно вектор???
Один из самых сложных в восприятии контейнеров...
0
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,675
Записей в блоге: 3
Завершенные тесты: 1
21.08.2013, 14:32 #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а не std::list или std::deque?
Потому что необходим массив
Цитата Сообщение от lesromand Посмотреть сообщение
Если вначале выполнения программы мне не известно размер массива
а не список
0
lesromand
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 98
21.08.2013, 14:33  [ТС] #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Указатель - это такая же переменная, так что ничем
Просто в указателе содержится адрес какой-то памяти.


delete освобождает память, ранее выделенную new, но не удаляет указатель.

Например, чтобы можно было изменить в функции переданный указатель, или, например для имитации двумерных массивов ( или еще больше измерений, но тогда и цепочка будет больше ********* )
Освобождает память но не удаляет, это как?Оно в воздухе тогда хранится?
0
Croessmah
21.08.2013, 14:35
  #10

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
на деле нужен просто контейнер динамического размера, в котором важна возможность наращивания/удаления элементов с конца.
Ну если брать только добавление/удаление в конец, то список тут может здорово проиграть.

0
Kastaneda
Форумчанин
Эксперт С++
4656 / 2864 / 228
Регистрация: 12.12.2009
Сообщений: 7,276
Записей в блоге: 2
Завершенные тесты: 1
21.08.2013, 14:36 #11
Цитата Сообщение от lesromand Посмотреть сообщение
Не совсем понял, в переменной - название функции.
Так почему же в c++ также нельзя в переменную записать название?
Потому что это рантайм, а С++ компилируемый язык и адреса вызываемых функций должный быть известны на этапе компиляции. РНР вроде как тоже можно компилировать, но в этом случае для преведенного выше кода будет сгенерирован такой огромный код, который не один С++'ник не потерпит С++ - это прежде всего скорость, а потом уже удобства.
0
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,675
Записей в блоге: 3
Завершенные тесты: 1
21.08.2013, 14:38 #12
Цитата Сообщение от lesromand Посмотреть сообщение
Освобождает память но не удаляет, это как?Оно в воздухе тогда хранится?
Читайте про динамическую память. Многое прояснится.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
21.08.2013, 14:46 #13
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну если брать только добавление/удаление в конец, то список тут может здорово проиграть.
дек я тоже специально упомянул, если ты не заметил.
Цитата Сообщение от Croessmah Посмотреть сообщение
Потому что необходим массив
Опять же, в подавляющем большинстве случаев, когда начинающий программист говорит, что ему нужен массив, ему нужен в первую очередь "какой-то контейнер".
Он просто не задумывался, что кроме массивов есть ещё контейнеры, поэтому и просит "массив, размер которого неизвестен".
Вот ты спроси у ТС, ему точно нужен массив, или сойдёт и дек? Он (ну может и не он, а другой новичёк) ответит "эээ, а какая разница?"
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2013, 14:52 #14
Kuzia domovenok, хочешь об этом поговорить - создавай свою тему. Преимущество вектора в том что это гарантированный массив, тогда как про дек такого сказать нельзя.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
21.08.2013, 15:01 #15
Цитата Сообщение от Jupiter Посмотреть сообщение
Kuzia domovenok, хочешь об этом поговорить - создавай свою тему. Преимущество вектора в том что это гарантированный массив, тогда как про дек такого сказать нельзя.
и ЧО??? Читай C. Мейерс - Эффективное использование STL и подобные учебники. Читай, зубри, пока не осознаешь.

Но сначала прочитай ещё раз мои посты в теме!
Особенно последний, в котором я написал, что в 90% случаев начинающий программист задаёт вопрос про МАССИВ, несмотря на то, что ему абсолютно наплевать на расположение этих данных в памяти. Он тупо не в курсе о существовании других контейнеров, поэтому спрашивает про "массив".
И поэтому я хочу ему помочь именно в этой теме.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2013, 15:01
Привет! Вот еще темы с ответами:

Непонятки с функциями - C++
Добрый день. Я новичек в программировании и вот вопрос: Хочу написать функцию, например: void __fastcall...

непонятки с делением:( - C++
Вот возникла такая проблемка...надо поделить числа так, что бы бралось полное цело число...т.е.: при деление 5:2=2.5=> программа выводит...

Непонятки с рандомом - C++
Не могу понять из-за чего рандом в классе повторяется. Есть такой код генерации пароля... class Pas { string symbols; ...

Непонятки со scanf - C++
char str_check; //строка для функции "check", которая проверяет введенные данные { scanf("%s",&str_check); } выскакивает...


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

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

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