Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/48: Рейтинг темы: голосов - 48, средняя оценка - 4.75
18 / 3 / 1
Регистрация: 21.11.2012
Сообщений: 77
1

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

29.11.2012, 17:24. Показов 9612. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Появилось желание изучить язык программирования. Собственно, интересует какая разница, и существует ли она вообще между С++ и Visual C++? Какую среду разработки используют профессиональные программисты?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2012, 17:24
Ответы с готовыми решениями:

Какую среду разработки выбрать для диплома
Здравствуйте всем! Подошло время для диплома, с темой определился, а с какой средой разработки нет....

Какую среду разработки выбрать на Mac для С++?
Добрый день! Недавно решил заняться изучением программирования на С++, однако сразу возник...

Какую среду разработки лучше использовать новичку?
Пытаюсь начать изучать c++ и нужно несколько советов: 1) Какую среду разработки лучше использовать...

Как выбрать среду разработки?
Не могу определиться со средой разработки. Цель - написать чат на С++ (Изучить возможные способы...

33
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
29.11.2012, 19:01 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от ValeryS Посмотреть сообщение
накидай мне быстренько в структурном программировании
работу с динамическим массивом
такое как vector или CArray
std::vector уже динамический массив? Я думала типичный односвязный список. Ладно, сейчас только пойду чайку попью и накидаю тебе базовый структурный вектор.
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
29.11.2012, 19:06 22
Цитата Сообщение от activnaya Посмотреть сообщение
std::vector уже динамический массив? Я думала типичный односвязный список.
вообще то список это list
ru.wikipedia.org/wiki/Стандартная_библиотека_шаблонов
0
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
29.11.2012, 19:43 23
Мне одному, наверное, на всем форуме нравится Qt Creator? По-моему довольно удобная, простенькая ИДЕ. К тому же кроссплатформенная.
0
256 / 46 / 4
Регистрация: 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;
}
0
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
29.11.2012, 19:48 25
activnaya, вектор - это вовсе никакой не список! Вектор требует размещение содержимое контейнера в непрерывном блоке памяти. С данными векторами работает арифметика указателей и еще много чего(обращение по индексу, например)
Кроме того присваивание tail = head; абсолютно бессмысленно, ты изменяешь копию указателя, а не сам указатель
0
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)

0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
29.11.2012, 21:37 27
Цитата Сообщение от activnaya Посмотреть сообщение
ну хорошо. Вектор - не массив, вектор - не список.
по ссылке значит мы не ходили
vector C-подобный динамический массив произвольного доступа с автоматическим изменением размера при добавлении/удалении элемента. Доступ по индексу за . Добавление-удаление элемента в конец vector занимает амортизированное время, та же операция в начале или середине vector — . Стандартная быстрая сортировка за . Поиск элемента перебором занимает . Существует специализация шаблона vector для типа bool, которая требует меньше памяти за счёт хранения элементов в виде битов, однако она не поддерживает всех возможностей работы с итераторами.
где хоть слово про список???
и далее где в твоей реализации переопределенный [] ?
учитывая то что С не поддерживает переопределения
0
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
29.11.2012, 21:50 28
Цитата Сообщение от ValeryS Посмотреть сообщение
по ссылке значит мы не ходили
ну если для тебя вики авторитет, то что тут поделать? Для меня более авторитетный источник, тот что я указала в своем посте. Там косвенно сказано что std::vector это не массив. (иначе зачем нам std::array?)
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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 это обёртка над простым статическим массивом.
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
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.
сиречь массив фиксированного размера (не динамический массив)
еще по ссылкам погуляем?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
29.11.2012, 22:08 31
Цитата Сообщение от activnaya Посмотреть сообщение
list - двусвязный список, vector - односвязный.

Если б это был односвязный список, то доступ по индексу для него - хороший performance penalty. Внутри массив.
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
29.11.2012, 22:35 32
Эти же люди скажут вам, что std::map - это хеш.
Спорить - бесполезно :-)
0
7 / 7 / 2
Регистрация: 30.04.2012
Сообщений: 188
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#.
Успехов и творческой радости!
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.11.2012, 03:23 34
Какую среду разработки используют профессиональные программисты?
только vi редактор, только hardcore
Dev Cpp для новичка самое то, ИМХО. А на студию перейти успеете, когда захотите что-нибудь серьезное писать. Или же на СВ/Qt Creator/Eclipse/netBeans. К моменту перехода осознаете чего хотите. Студия заточена под винду и позволяет получать всякие ништяки, но именно на Microsoft. А dev имеет минималистический дизайн, легче в обращении и чуть ближе к стандарту. Главное - дело вкуса. Я вот перепробовал все из вышеперечисленного, исключая NetBeans и включая Geany, wxDev, но удобней gedit-a не нашел.

std::vector уже динамический массив?
грубо говоря, это обернутый динамический массив. Иначе откуда константное время доступа к элементу, проблемы с удалением не с конца и свободное индексирование? Список имеет диаметрально противоположную философию относительно этих понятий.
0
30.11.2012, 03:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2012, 03:23
Помогаю со студенческими работами здесь

Возможно ли преобразовать программу на Борланд С++ в какую-либо графическую среду разработки?
Добрый вечер! Подскажите пожалуйста - возможно ли преобразовать программу, которая была написана на...

Какую среду выбрать?
Собираюсь начать изучение C++. Подскажите, какую среду разработки лучше выбрать и почему?

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

Какую лучше выбрать среду для графики
Какая среда больше подходит для программирования графики с OpenGL, без конструктора визуальных...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru