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

С++, какую среду разработки выбрать? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.97
Siebent
 Аватар для Siebent
16 / 2 / 1
Регистрация: 21.11.2012
Сообщений: 39
29.11.2012, 17:24     С++, какую среду разработки выбрать? #1
Появилось желание изучить язык программирования. Собственно, интересует какая разница, и существует ли она вообще между С++ и Visual C++? Какую среду разработки используют профессиональные программисты?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
29.11.2012, 19:01     С++, какую среду разработки выбрать? #21
Цитата Сообщение от ValeryS Посмотреть сообщение
накидай мне быстренько в структурном программировании
работу с динамическим массивом
такое как vector или CArray
std::vector уже динамический массив? Я думала типичный односвязный список. Ладно, сейчас только пойду чайку попью и накидаю тебе базовый структурный вектор.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
29.11.2012, 19:06     С++, какую среду разработки выбрать? #22
Цитата Сообщение от activnaya Посмотреть сообщение
std::vector уже динамический массив? Я думала типичный односвязный список.
вообще то список это list
ru.wikipedia.org/wiki/Стандартная_библиотека_шаблонов
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
29.11.2012, 19:43     С++, какую среду разработки выбрать? #23
Мне одному, наверное, на всем форуме нравится Qt Creator? По-моему довольно удобная, простенькая ИДЕ. К тому же кроссплатформенная.
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
29.11.2012, 19:45     С++, какую среду разработки выбрать? #24
Цитата Сообщение от ValeryS Посмотреть сообщение
вообще то список это list
list - двусвязный список, vector - односвязный. Может тут и ошибки даже есть, не буду ни компилировать, ни отлаживать, смысл в том, что это так же просто как 2*2 = 4.
Кликните здесь для просмотра всего текста
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
typedef struct vec
{
    int val;
    struct vec *next;
} vector_t;
 
vector_t *push_back(vector_t *head, vector_t *tail, int val)
{
    vector_t *tmp = malloc(sizeof(vector_t));
 
    if (!tmp)
        return NULL;
    else
    {
        tmp->val = val;
        tmp->next = NULL;
 
        if (!head)
        {
            head = tmp;
            tail = head;
        }
         else
            tail->next = tmp;
    }
    return tmp;
}
 
vector_t *pop_back(vector_t *head, vector_t *tail)
{
    vector_t *tmp = head;
 
    if (tmp->next == NULL)
    {
        free(tmp);
        return NULL;
    }
    while ( (tmp->next)->next )
        tmp = tmp->next;
        
    free(tmp->next);
    tmp->next = NULL;
 
    return tmp;
}
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
29.11.2012, 19:48     С++, какую среду разработки выбрать? #25
activnaya, вектор - это вовсе никакой не список! Вектор требует размещение содержимое контейнера в непрерывном блоке памяти. С данными векторами работает арифметика указателей и еще много чего(обращение по индексу, например)
Кроме того присваивание tail = head; абсолютно бессмысленно, ты изменяешь копию указателя, а не сам указатель
activnaya
29.11.2012, 20:07
  #26

Не по теме:

Цитата Сообщение от Buckstabue Посмотреть сообщение
activnaya, вектор - это вовсе никакой не список!
ну хорошо. Вектор - не массив, вектор - не список. Что тогда? Судя по описанию отсюда http://www.cplusplus.com/reference/vector/vector/ вектор - есть максимально приближенный к массивам список.
Цитата Сообщение от Buckstabue Посмотреть сообщение
Кроме того присваивание tail = head; абсолютно бессмысленно, ты изменяешь копию указателя, а не сам указатель
ой ой перепиши так. И соответственно замени тело функции, где это необходимо.
C
1
vector_t *push_back(vector_t **head, vector_t **tail, int val)

ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
29.11.2012, 21:37     С++, какую среду разработки выбрать? #27
Цитата Сообщение от activnaya Посмотреть сообщение
ну хорошо. Вектор - не массив, вектор - не список.
по ссылке значит мы не ходили
vector C-подобный динамический массив произвольного доступа с автоматическим изменением размера при добавлении/удалении элемента. Доступ по индексу за . Добавление-удаление элемента в конец vector занимает амортизированное время, та же операция в начале или середине vector — . Стандартная быстрая сортировка за . Поиск элемента перебором занимает . Существует специализация шаблона vector для типа bool, которая требует меньше памяти за счёт хранения элементов в виде битов, однако она не поддерживает всех возможностей работы с итераторами.
где хоть слово про список???
и далее где в твоей реализации переопределенный [] ?
учитывая то что С не поддерживает переопределения
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
29.11.2012, 21:50     С++, какую среду разработки выбрать? #28
Цитата Сообщение от ValeryS Посмотреть сообщение
по ссылке значит мы не ходили
ну если для тебя вики авторитет, то что тут поделать? Для меня более авторитетный источник, тот что я указала в своем посте. Там косвенно сказано что std::vector это не массив. (иначе зачем нам std::array?)
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
29.11.2012, 21:54     С++, какую среду разработки выбрать? #29
Цитата Сообщение от activnaya Посмотреть сообщение
ну хорошо. Вектор - не массив, вектор - не список. Что тогда? Судя по описанию отсюда http://www.cplusplus.com/reference/vector/vector/ вектор - есть максимально приближенный к массивам список.
...
Internally, vectors use an array to store their elements. In order to grow in size dynamically, this array may need to be reallocated when new elements are inserted. This is generally an expensive operation that implies moving all elements to a newly allocated array, and thus is not performed for each element added to the container.
...
Перевод:
Внутри, для хранения своих элементов, векторы используют массивы. При вставке нового элемента, для того чтобы динамически увеличится в размере массив может потребовать перераспределения памяти. Это довольно дорогостоящая операция, предполагающая перемещения всех элементов во вновь созданный массив, и следовательно не выполняющаяся для каждого элемента добавленного в контейнер(потому как памяти обычно выделяется больше, чем необходимо для хранения текущего количества элементов - прим.).
Добавлено через 1 минуту
Цитата Сообщение от activnaya Посмотреть сообщение
иначе зачем нам std::array
std::array это обёртка над простым статическим массивом.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
29.11.2012, 22:07     С++, какую среду разработки выбрать? #30
Цитата Сообщение от activnaya Посмотреть сообщение
Для меня более авторитетный источник, тот что я указала в своем посте.
хорошо пойдем по твоей ссылке
первая же строчка
Vectors are sequence containers representing arrays that can change in size.
и что мы видим arrays сиречь массивы
которые can change in size могут изменять размер
динамический массив
слово список (list)во всей статье я нашел только в этой фразе
Compared to the other dynamic sequence containers (deques, lists and forward_lists), vectors are very efficient
где вектор сравнивается с другими контейнерами

Добавлено через 4 минуты
Цитата Сообщение от activnaya Посмотреть сообщение
иначе зачем нам std::array?
смотрим там же (поскольку авторитет)
первая же строка
Arrays are fixed-size sequence containers: they hold a specific number of elements ordered in a strict linear sequence.
сиречь массив фиксированного размера (не динамический массив)
еще по ссылкам погуляем?
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.11.2012, 22:08     С++, какую среду разработки выбрать? #31
Цитата Сообщение от activnaya Посмотреть сообщение
list - двусвязный список, vector - односвязный.

Если б это был односвязный список, то доступ по индексу для него - хороший performance penalty. Внутри массив.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.11.2012, 22:35     С++, какую среду разработки выбрать? #32
Эти же люди скажут вам, что std::map - это хеш.
Спорить - бесполезно :-)
VlTag
6 / 6 / 0
Регистрация: 30.04.2012
Сообщений: 83
30.11.2012, 01:51     С++, какую среду разработки выбрать? #33
Уважаемый Siebent!
Самый простой и недорогой вариант для Вас - начать с программы-среды C++_Builder_6.0 . Этот пакет позволит Вам освоить и C, и C++ путём создания консольных приложений (работающие несложные программы, но без графического интерфейса). Очень рекомендую для первых шагов приобрести недорогую книгу Джесс Либерти "Освой самостоятельно C++. 10 минут на урок". И через месяц Вы будете свободно писать программы для математических расчётов и прочие, тренирующие умение составлять работающие коды. А далее можете переходить на изучение ООП используя тот же компилятор Builder 6.0 . После этого попробуйте перейти на пакет Visual Studio (язык тот же C++). Профессионалы этот пакет выше ценят, по сравнению с Builder 6.0 . Если же понадобиться создавать программы для Web, то в пакете Studio имеется язык C#.
Успехов и творческой радости!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 03:23     С++, какую среду разработки выбрать?
Еще ссылки по теме:

C++ Какую бесплатную среду (IDE) разработки для С++ 2013/2014 года выпуска лучше скачать?
Возможно ли преобразовать программу на Борланд С++ в какую-либо графическую среду разработки? C++
C++ Какую среду разработки выбрать для диплома

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
30.11.2012, 03:23     С++, какую среду разработки выбрать? #34
Какую среду разработки используют профессиональные программисты?
только vi редактор, только hardcore
Dev Cpp для новичка самое то, ИМХО. А на студию перейти успеете, когда захотите что-нибудь серьезное писать. Или же на СВ/Qt Creator/Eclipse/netBeans. К моменту перехода осознаете чего хотите. Студия заточена под винду и позволяет получать всякие ништяки, но именно на Microsoft. А dev имеет минималистический дизайн, легче в обращении и чуть ближе к стандарту. Главное - дело вкуса. Я вот перепробовал все из вышеперечисленного, исключая NetBeans и включая Geany, wxDev, но удобней gedit-a не нашел.

std::vector уже динамический массив?
грубо говоря, это обернутый динамический массив. Иначе откуда константное время доступа к элементу, проблемы с удалением не с конца и свободное индексирование? Список имеет диаметрально противоположную философию относительно этих понятий.
Yandex
Объявления
30.11.2012, 03:23     С++, какую среду разработки выбрать?
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru