Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 31.01.2020
Сообщений: 148

Куда смотреть? Как понимать "язык общего назначения"?

09.02.2020, 18:09. Показов 4232. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я изучаю cpp, знаю и изучил на данный момент: типы переменных, массивы, ввод, вывод, работу с текстовыми файлами, динамическую память, указатели, динамические массивы, структуры, списки, графы, стэки, кучи. Слышал про stl, но ещё не изучал. Но я не понимаю, не вижу, не чувствую, как на программировать серьезные программы. Я понимаю, что я скорее всего просто ещё много не изучил. В связи с этим вопросы:
1)Графическая оболочка, что, как, когда надо это изучать?
2)Можно ли идти в web-разработку с c++?
3)Какие самые популярные библиотеки у крутых челов из больших команий?
4)с++ это только бэкенд?
5)С какими языками c++ лучше всего комбинировать, оно вообще надо?
6)Чем занимаются c++ программисты на работе?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2020, 18:09
Ответы с готовыми решениями:

Как объяснить Яндексу куда смотреть
Есть такая проблема: Сайт в зоне com, основная версия сайта - английская, находится по адресу www.site.com, есть и русская версия,...

LSE как источник тактирования таймера общего назначения
Контроллер STM32F407. Читал что такое возможно, только нигде не могу найти примера. Нужно использовать внешний низкочастотный кварцевый...

Немецкий язык. Как смотреть телевизор?
Русское выражение "смотреть телевизор" двусмысленно: 1. "смотреть телевизор" означает "смотреть на ящик", который мы...

60
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.02.2020, 14:20
Студворк — интернет-сервис помощи студентам
А кто пользуется встроенной докой в наше время?

Кроме того bsearch наверное утилита.

Добавлено через 1 минуту
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
а lower_bound - связывание (чего с чем?) и на поиск не намекает никак.
По тому что смысл придается другой учитывая что есть upper_bound
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
12.02.2020, 15:24
Цитата Сообщение от Avazart Посмотреть сообщение
А кто пользуется встроенной докой в наше время?
Любой разумный человек. Даже странно такой вопрос задавать.
Не в инет же лазить чтобы посмотреть прототип и возвращаемые значения функции. Хотя бы потому что там информация неструктурированная.
Цитата Сообщение от Avazart Посмотреть сообщение
Кроме того bsearch наверное утилита.
В смысле? Вроде пока только функции (и методы) рассматривали. В документации тоже ни слова про одноименную утилиту.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.02.2020, 15:28
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Любой разумный человек. Даже странно такой вопрос задавать.
А разве разумно говорить вообще о документации, при чем под Linux, при чем встроенной?

Т.е. это блин вообще никак не касается темы.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
12.02.2020, 17:47
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Не в инет же лазить чтобы посмотреть прототип и возвращаемые значения функции. Хотя бы потому что там информация неструктурированная.
Как будто про cppreference.com в первый раз слышите. И структурировано, и работать удобнее чем с man, и никакой привязки к пингвинам.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.02.2020, 17:51
Цитата Сообщение от Renji Посмотреть сообщение
и никакой привязки к пингвинам.
Да и на пингвине как бы встроенная доку нужна если у Вас какой то "жесткий" дистрибутив в "жестких" условиях типа без интернета ...
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
13.02.2020, 10:15
Цитата Сообщение от Avazart Посмотреть сообщение
А разве разумно говорить вообще о документации, при чем под Linux, при чем встроенной?
Что-то не улавливаю ход ваших мыслей. Вы предлагаете не пользоваться документацией? Вы предлагаете лезть в интернет и просеивать тонны мусора вместо простой команды? Особенно когда мы говорим о простейших вещах - посмотреть назначение функции и уточнить порядок аргументов и возвращаемого значения.
Цитата Сообщение от Avazart Посмотреть сообщение
Т.е. это блин вообще никак не касается темы.
Вы сами попытались привести пример удобства С++ по сравнению с Си. Можно было привести пример с шаблонами, лямбдами и т.п., а потом предложить программисту на каком-нибудь Паскале разобраться.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.02.2020, 12:27
Цитата Сообщение от Avazart Посмотреть сообщение
А разве разумно говорить вообще о документации, при чем под Linux, при чем встроенной?
Т.е. это блин вообще никак не касается темы.
разумно вообще общаться с наркоманом, у которого "сишный линукс головного мозга"?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
13.02.2020, 15:52
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы сами попытались привести пример удобства С++ по сравнению с Си. Можно было привести пример с шаблонами, лямбдами и т.п., а потом предложить программисту на каком-нибудь Паскале разобраться.
Собственно, так и сделали. Сишный пример с лямбдами указателями на функторы, против C++ примера вообще без функторов. Это не касаясь батареи грабель bsearch, на одну из которых вы сами же и наступили (в bsearch( &key, begin, (end-begin)/sizeof(begin[0]), sizeof(begin[0]), cmpfunc ); деление в третьем аргументе лишнее).
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
13.02.2020, 16:37
Цитата Сообщение от Renji Посмотреть сообщение
Собственно, так и сделали.
Сделали. Продемонстрировали что обычные функции из Си понятнее.
Цитата Сообщение от Renji Посмотреть сообщение
Это не касаясь батареи грабель bsearch, на одну из которых вы сами же и наступили (в bsearch( &key, begin, (end-begin)/sizeof(begin[0]), sizeof(begin[0]), cmpfunc ); деление в третьем аргументе лишнее).
Вы бы сначала проверили, прежде чем позориться.
Вариант здорового человека:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int cmp(const void *arg1, const void *arg2){
  return *(int*)arg1 - *(int*)arg2;
}
 
int main(){
  int arr[10] = {2,4,6,8,10,12,14,16,18,20};
  int key = 18;
  int *elem = bsearch( &key, arr, sizeof(arr)/sizeof(int), sizeof(int), cmp);
  printf("[%i] = %i\n", elem - arr, *elem);
}
Code
1
2
3
$ gcc main.c
$ ./a.out 
[8] = 18
Вариант Renji:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int cmp(const void *arg1, const void *arg2){
  return *(int*)arg1 - *(int*)arg2;
}
 
int main(){
  int arr[10] = {2,4,6,8,10,12,14,16,18,20};
  int key = 18;
  int *elem = bsearch( &key, arr, sizeof(arr), sizeof(int), cmp);
  printf("[%i] = %i\n", elem - arr, *elem);
}
Code
1
2
3
$ gcc main.c
$ ./a.out 
Ошибка сегментирования
Кто там вещал про то, что документация не нужна? Там прямым текстом написано:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ man bsearch | head -n 16
BSEARCH(3)                              Linux Programmer's Manual                             BSEARCH(3)
 
NAME
       bsearch - binary search of a sorted array
 
SYNOPSIS
       #include <stdlib.h>
 
       void *bsearch(const void *key, const void *base,
                     size_t nmemb, size_t size,
                     int (*compar)(const void *, const void *));
 
DESCRIPTION
       The bsearch() function searches an array of nmemb objects, the initial member of which is pointed
       to by base, for a member that matches the object pointed to by key.  The size of each  member  of
       the array is specified by size.
array of nmemb objects - массив из nmemb объектов, а вовсе не массив размера nmemb. Смотрим ту же документацию, там есть пример использования:
Code
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
46
$ man bsearch | head -n 85 | tail -n 45
EXAMPLE
       The  example below first sorts an array of structures using qsort(3), then retrieves desired ele‐
       ments using bsearch().
 
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>
 
       struct mi {
           int nr;
           char *name;
       } months[] = {
           { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },
           { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },
           { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" }
       };
 
       #define nr_of_months (sizeof(months)/sizeof(months[0]))
 
       static int
       compmi(const void *m1, const void *m2)
       {
           struct mi *mi1 = (struct mi *) m1;
           struct mi *mi2 = (struct mi *) m2;
           return strcmp(mi1->name, mi2->name);
       }
 
       int
       main(int argc, char **argv)
       {
           int i;
 
           qsort(months, nr_of_months, sizeof(struct mi), compmi);
           for (i = 1; i < argc; i++) {
               struct mi key, *res;
               key.name = argv[i];
               res = bsearch(&key, months, nr_of_months,
                             sizeof(struct mi), compmi);
               if (res == NULL)
                   printf("'%s': unknown month\n", argv[i]);
               else
                   printf("%s: month #%d\n", res->name, res->nr);
           }
           exit(EXIT_SUCCESS);
       }
Особое внимание обращаю на строчку #define nr_of_months (sizeof(months)/sizeof(months[0])) и ее использование в функциях.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
13.02.2020, 17:18
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
int *elem = bsearch( &key, arr, sizeof(arr)/sizeof(int), sizeof(int), cmp);
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Только bsearch( &key, begin, (end-begin)/sizeof(begin[0]), sizeof(begin[0]), cmpfunc );
О чем и речь. Ошибки не видите, даже когда вам указали где искать.
И да, я проверял, адресная арифметика в Си работает также как в C++. Так что в моем bsearch(&key,begin,end-begin,sizeof(int),intCompare) то как раз все правильно.
C
1
2
3
4
    int array[4]={1,2,3,4};
    int*begin=array;
    int*end=&array[4];
    printf("%d\n",(int)(end-begin));//внезапно, печатает четыре
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
13.02.2020, 20:50
Ну ок, для вашего экзотического случая может так и правильно. Я-то к обычной записи привык, без извращений. Соответственно и шаблоны кодинга применяю.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
13.02.2020, 22:30
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну ок, для вашего экзотического случая может так и правильно. Я-то к обычной записи привык, без извращений.
Абсолютно стандартный случай "размер массива на стадии компиляции неизвестен". Хотя, вполне допускаю что на микроконтроллерах пользуются только статическими массивами.
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
14.02.2020, 10:11
Цитата Сообщение от Renji Посмотреть сообщение
Абсолютно стандартный случай "размер массива на стадии компиляции неизвестен"
Тогда хранится именно размер. Именно он используется в большинстве функций. Какая польза от указателя на последний элемент?
Цитата Сообщение от Renji Посмотреть сообщение
Хотя, вполне допускаю что на микроконтроллерах пользуются только статическими массивами.
Это-то само собой. Работа с динамической памятью относительно дорогостоящая, да и ненужная. Данных там обычно немного и обрабатываются они "на лету".
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
14.02.2020, 16:30
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Тогда хранится именно размер. Именно он используется в большинстве функций. Какая польза от указателя на последний элемент?
Указатель удобней в стандартной задаче "перебрать все элементы массива". *arrayPos смотрится красивее array[offset], да и алгоритмически вроде как попроще, потому что адресной арифметики не требует. Плюс, STL функции предпочитают именно указатели, а сишных альтернатив для того же std::make_heap попросту нет. А так, конечно, оба подхода к реализации динамического массива имеют право на жизнь.
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
14.02.2020, 22:03
Перебрать все элементы массива? А чем не устроило стандартное for(i=0; i<max; i++) arr[i]...? Выглядит нагляднее, чем комбинация звездочек. Даже при ходьбе по строкам сравните
C
1
2
for(char *ch = str; ch[0] != ' '; ch++){}
for(char *ch = str; *ch != ' '; ch++){}
Первая запись - доступ к элементу массива, вторая - разыменование указателя, без подсказок про массив.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
14.02.2020, 22:37
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Перебрать все элементы массива? А чем не устроило стандартное for(i=0; i<max; i++) arr[i]...?
Тем, что "длинные и понятные имена" как "Отче наш". И arr[i] вдруг превращается в inputBuffer[pos], против просто *pos.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
15.02.2020, 02:22
Цитата Сообщение от lukinegor Посмотреть сообщение
2)Можно ли идти в web-разработку с c++?
В вебе больше используются JS, PHP, JAVA, PYTHON, RUBY и у этого есть причины, основная -- скорость и стоимость разработки на этих языках. Можно идти в веб-разработку и на С++, но маловероятно, что будут вакансии.
Цитата Сообщение от lukinegor Посмотреть сообщение
3)Какие самые популярные библиотеки у крутых челов из больших команий?
Бесчётное количество библиотек. Тут очень зависит от того, чем занимается компания и чем в ней занимается специалист, который вас интересует.
Цитата Сообщение от lukinegor Посмотреть сообщение
с++ это только бэкенд?
С++ это в основном инструментарий. Это кады, игры, системные приложения, оконные приложения... То, где важна скорость исполнения и богатая функциональность.
Цитата Сообщение от lukinegor Посмотреть сообщение
С какими языками c++ лучше всего комбинировать, оно вообще надо?
Полезными могут оказаться знания смежных дисциплин - скриптовых языков (шелл, питон, руби), SQL и так далее.
Цитата Сообщение от lukinegor Посмотреть сообщение
Чем занимаются c++ программисты на работе?
В основном код пишут.
Например в геймдеве есть много разных программистов С++.
Геймплей -- пишут основную логику игр.
Тулзы -- пишут инструменты для разработчиков игр и смежных специальностей (художников, например)
Рендеринг -- пишут код, который рендерит картинку
ну и так далее.
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
15.02.2020, 08:43
Цитата Сообщение от Renji Посмотреть сообщение
Тем, что "длинные и понятные имена" как "Отче наш". И arr[i] вдруг превращается в inputBuffer[pos], против просто *pos.
С точки зрения читаемости - странный подход. Вместо массива пишете указатель.
Но это вопрос вкуса. Естественно, рекомендовать ваш подход я никому не буду, но кроме стилистической нелогичности и небольшого перерасхода памяти объективных недостатков не вижу.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
15.02.2020, 09:46
Цитата Сообщение от Undisputed Посмотреть сообщение
Какие самые популярные библиотеки у крутых челов из больших команий?
одну знаю точно.
0
15.02.2020, 10:08

Не по теме:

_stanislav, это прикол такой или глюк?:) ты уже второй человек в этой теме который пишет пост с цитатой ТС, но указывает мой ник :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2020, 10:08

Как заставить консоль понимать русский язык? (русские шрифты в консоли)
Добрый вечер. Нужна ваша помощь С++ не понимает русский язык

ОУ общего назначения
хочу к порту вывода своего мк подключить устройство на 12 вольт интуиция мне дилетанту подсказывает, что нужно всего лишь усилить сигнал....

Регистры общего назначения
Доброго времени суток! У меня есть вопрос, с которым, я надеюсь, здесь большинство справится: Есть регистр, к примеру ax, или любой...

Регистры общего назначения
Подскажите ,пожалуйста, чем отличаются регистры R0...R15 от R16...R31? Кроме того что некоторые команды оперирующие константами не...

функции общего назначения
Функция Afteratnum(c1,c2:string; n1,n2:byte):string – возвращает хвост строки с1, в которой осуществляется поиск с позиции n2 подстроки с2...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru