Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637

Хочется узнать мнения новичков

25.01.2020, 23:29. Показов 6780. Ответов 144
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Вопрос такого плана, есть идея записать серию обучающих уроков по c++ stl. Прям с нуля так сказать "Привет мир". Формат вещание на ютубе с чатом в скайпе (но это обсуждается). Вообще такая потребность есть или я не в тот огород лезу и пойду свое чсв где то в другом месте реализовывать?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2020, 23:29
Ответы с готовыми решениями:

Хочется услышать мнения
msi u270 vs lenovo ideapad s205 мси подкупает своим E2-1800 и чётким видео ATI 7340, у леново чуть хуже E-450 и видео ATI 6320. Выбор...

Оцените конфиг, собрал сам, хочется мнения со стороны людей, более сведующих в данной сфере
И так: материнская плата - Asus m5 a97 r2.0 Socket am3+ CPU - AMD FX six-core processor 3.5 Ггц RAM - 8gb Corsair dimm DDR 3 GPU -...

хочу узнать ваши мнения.
Всем привет буду вам признательна в любой критики по поваду сайта.Хочу изменить дизайн сайта.narashivanie-nogtey.narod.ru

144
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
27.01.2020, 00:21
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Да они там перемудрили и специализировали вектор для bool как что бы хранить биты, как я помню уместили несколько bool в один int или char в итоге вышло экономно по памяти, но нифига не эффективно по производительности, еще и криво.
Они хотели привести пример как следует писать прокси-контейнеры
Но никто не оценил )
0
27.01.2020, 00:23

Не по теме:


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

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.01.2020, 00:30
Mesteriis,
Цитата Сообщение от Mesteriis Посмотреть сообщение
Хоть новичков мы так и не услышали
Я тута)
Крнтейнеры стандартной библиотеки (или как раньше - stl) многоуровневая тема. От первых шагов до определённого уровня совершенства - много ступеней. На каждой - пересмотр известного материала на новом уровне. В этом нет ни чего нового, но к теме это может относиться вот как. Нужно определиться с целевой аудиторией, а значит с целью.
Вот например, достаточно интересный (на правах саморекламы, но без ложной скромности ) комбайн - многофункциональное множество на общем хранилище, построенное из списков и вектора.
https://www.cyberforum.ru/blog... g4772.html
В принципе, аудитория есть. Полтора килопросмотра и более сотни скачиваний ( 6,7 процента тех кого зацепило посмотреть поближе ), это хорошо. Учитывая, что это не новичковский материал, - хорошо, я считаю. Но это не текст для массового читателя.
Я это к тому, что если начать с задачи проектирования, то новички уснут. А они (контеёнеры) - шаблоны проектирования, кстати. И задача борбы с зависимостями в решении задач массовых алгоритмов, построенных на проходе коллекций, - суть темы. Алгоритмы, хранилища (контейнеры) и итераторы - три разделённых инструмента. Обобщения предоставляют комфорт и снижают эффективность. Везде, где можно отказаться от обобщения в пользу специализации - выигрыш. Трудное но диалектическое противоречие. Итераторы и возможная потеря валидности. Итераторы и cv квалификаторы.
Стратегии распределения памяти и пользовательские аллокаторы. Контейнеры указателей базового класса. Контейнеры умных указателей. Контейнеры и другие паттерны проектирования. Это перечисленные отрывисто крохи.
И всё это не имеет смысла в новичковском курсе. Без практики нет пользы в попытке рассказать как решается сложная задача. Вот и выходит, что нужно хеловордно поведать о вечном. О хранении однотипных объектов. Вставка, удаление, поиск... Преимущества разных контейнеров в разных задачах. Деревья, хеш-таблицы.
Даже обзорное знакомство с претензией на занимательность - серьёзная задача для креативного творческого ума. Тут нужно думать. Я могу представить себе Вини-Пуха и контейнер пчёл... Но я не знаю, знают ли сегодняшние молодые люди про этого медведя)
Тут нужно с целевой аудиторией работать, чтобы понять, что будет прикольнее.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
27.01.2020, 00:32
IGPIGP, просто изучение стандартной библиотеки и переписывание оной с 0, или написание своего в добавок к std, разные штуки.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.01.2020, 00:40
Думаю не такие уж разные как может показаться.
Судя по докладам часто некоторые компании переписывали std::string делая его COW для оптимизации (до появления мув семантики и std::string_view)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.01.2020, 00:44
Цитата Сообщение от Azazel-San Посмотреть сообщение
IGPIGP, просто изучение стандартной библиотеки и переписывание оной с 0, или написание своего в добавок к std, разные штуки.
Конечно разные. Но я не говорил о необходимости написания своих библиотек. То что я показал на страничку с поисковой структуркой - о том, как раз, что сложный материал не бывает массово востребованным. А сделать прогулку по контейнерам stl в стиле: Алиса в Стране Чудес трудно и возможно, не продуктивно. Разве-что уж очнь талантливо написать и оформить. Суть для начала в том, чтобы помочь новичку связать массивы (и динамически выделенные блок-массивы), связные списки, деревья - (самописные и не шаблонные) с таковыми же шаблонными, а потом показать - взрослые дяди наваяли готовые вещи.
И да. Сначала нужно хорошо изучить то, что уже есть и обосновать для себя необходимость в это втиснуться. В принципе ковбойский боевик с налётом банды итераторов на поезд с вагонами-контейнерами всякого добра, должен принести ещё и пользу) То есть, дать что-то, чего у других нет или мало, для понимания самой сути темы.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
27.01.2020, 01:11
Цитата Сообщение от Avazart Посмотреть сообщение
Думаю не такие уж разные как может показаться.
Разные, тк переписывают когда появляется надобность, ибо stl чем-то не удовлетворяет.
У меня на проекте переписывали и это разное)
Цитата Сообщение от IGPIGP Посмотреть сообщение
Но я не говорил о необходимости написания своих библиотек.
А вот мне было бы это интересно)
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.01.2020, 01:45
Цитата Сообщение от Azazel-San Посмотреть сообщение
А вот мне было бы это интересно)
Но это же не для новичков? Azazel-San, контейнеры стандартной библиотеки очень хороши там где ими можно обойтись. Но если нельзя, то искать другие или писать своё. Последнее - крайний случай.
Новичку нужно понять много вещей, которые преподавателю кажутся очевидными. В этом вся трудность. И если написание самописного вектора - учебная задача - это вполне понятно. Идеома RAII в контейнере (контейнер - владелец). Разделяемые представления не учитываются на стадии знакомства. Независимость ссылки на данные от ссылки на ячейку. Ссылка по индексу, ссылка по итератору. Преимущества и недостатки произвольного доступа.
Потом то же самое со списком. И так далее. Это вполне рабочий вариант. Не прогулка, но ... Если серьёзно, то прогулкой это сделать трудно. Разве-что придумать персонажа которому вы это объясняете и который не всегда понимает сразу. Разбавлять повествование диалогами. Пусть не Хрюша и Степаша, но что-то похоже на диалог Скайуокера и пилота о рулях и закрылках)
0
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
27.01.2020, 01:53
Цитата Сообщение от XLAT Посмотреть сообщение
Вы можете это прям щас объяснить мне доходчиво?
например так:

Почему std::vector<bool> не STL контейнер?
1. Что такое STL описано в стандарте С++.
2. И там сказано, что любой контейнер STL может нам вернуть указатель на любой свой элемент.
3. std::vector<bool> хранит свои элементы в битах.
4. например: std::vector<bool> v(6, true) будет содержать шесть булевых элементов со значением true
5. а общий размер памяти он будет занимать один байт.
6. Компьютер же устроен так, что мы не можем адресовать память в отдельный бит.
7. т.е. получить адрес на тот бит который содержит конкретное булевое значение из std::vector<bool> никак нельзя.
8. отсюда std::vector<bool> не STL контейнер.

фиг знает, будет ли понятно такое объяснение кому то ещё, но для меня это ясно как ясный день.
Это можно объяснить другими словами, но как объяснять если человек ещё не знает, например,
что такое указатель, а представьте, тоже например, есть люди, которые не знают что такое компьютер.

Добавлено через 5 минут
зы:
в выше приведенной объяснялке надо пометь местами пару пуктов для лучшей причинно-следственной связности.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.01.2020, 02:05
Цитата Сообщение от XLAT Посмотреть сообщение
Почему std::vector<bool> не STL контейнер?
XLAT, вы правильно пишете. Но я бы ограничился утверждением
Цитата Сообщение от XLAT Посмотреть сообщение
Почему std::vector<bool> не обычный STL vector?
Разные контейнеры предоставляют разные гарантии. Например список гарантирует валидность итераторов на присутствующие (оставшиеся) элементы при любых операциях удаления/вставки других ячеек. Вектор не может этим похвастать. А вектор bool -вектор, который не вектор. В том смысле о котором вы говорите. Внутреннее представление не очевидно. В некоторых строковых контейнерах (или установленных оптимизациях) внутреннее представление накладывает ряд ограничений на работу с ними. Неизменяемые строки)
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
27.01.2020, 02:13
Цитата Сообщение от XLAT Посмотреть сообщение
например так:
Да проще это излагается.
std::vector<Что_То_Там> нормального человека хранит в себе объекты Что_То_там.
std::vector<bool> курильщика никаких bool в себе не хранит. Он только делает вид что у него внутри bool лежат. Что может привести к неожиданному удару граблями по лбу. Как пример - метода data() у него внезапно нету. Не ожидающий такого подвоха программист будет долго чесать репку пытаясь понять почему это у него intVector.data() компилируется, а boolVector.data() - нет.
0
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
27.01.2020, 02:36
Цитата Сообщение от Renji Посмотреть сообщение
std::vector<bool> курильщика никаких bool в себе не хранит
в этот месте у новичка случается разрыв шаблона а потом и взрыв самого мозга:
Название: ezgif.com-gif-maker.gif
Просмотров: 47

Размер: 173.3 Кб
и уже потом объяснять просто некому.

для любого прогера бул это ПРЕЖДЕ ВСЕГО два значения да и нет влазивающих (как бы) в один бит, ... и прочее прочее прочее.

короче, лучший способ объяснить, это упростить объясняемое,
и как бы бум и не надо уже ничаво объяснять ?

я бы держался от таких объясняльщиков как можно дальше.
0
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
27.01.2020, 02:46
Цитата Сообщение от Renji Посмотреть сообщение
Да проще это излагается.
потому что std::vector<bool> придумали накркоманы.


кстати, такие объяснялки весьма популярны на разных форумах.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
27.01.2020, 03:18
Цитата Сообщение от XLAT Посмотреть сообщение
для любого прогера бул это ПРЕЖДЕ ВСЕГО два значения да и нет влазивающих в один бит
Так мы про новичка или про питонщика решившего C++ попробовать?
Новичок должен учить материал последовательно. Сначала изучаем что логическое значение можно хранить и в bool, и в int и даже битовых масках, но int от этого bool не становится. Только потом переходим к векторам. Если же кто-то перепрыгивает материал, ну и сам себе злобный Буратино.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
27.01.2020, 03:49
Автор, некоторое время назад я с такими же бескорыстными побуждениями чисто из любви к искусству и в надежде на обратную связь сначала записал несколько стримов на сторонних площадках, а потом и на своем ютуб-канале https://www.youtube.com/channe... subscriber
Что сказать, большого и массового интереса к темам не наблюдаю. Может дело в том, что, как говорил автор мема, "мои вкусы весьма специфичны, ты не поймешь" А может я ленивый мизантроп и дилетант, не знаю.

Тем не менее, я лелею мысль выйти с таким же примерно вопросом на одном интернациональном англоязычном комьюнити

Так что успехов тебе, по крайней мере ты ничем не рискуешь и ничего не теряешь в любом случае
3
 Аватар для uzzik
2 / 2 / 0
Регистрация: 25.01.2020
Сообщений: 41
27.01.2020, 04:06
Цитата Сообщение от XLAT Посмотреть сообщение
Mesteriis,
вот поглядел я щас видео про то что std::vector<bool> опасен для программистов.

но не фига не понял.

Вы можете это прям щас объяснить мне доходчиво?
очень уж сложно всё.

Добавлено через 13 минут
Цитата Сообщение от Дига Посмотреть сообщение
(ты говори)

Вся прада в том, что все разработки в России не нужны, если вы утверждаете обратное, значит вы школьник на шее родителей сидящий и никогда не были в магазине.
Ваш Си и вообще программирование ни требуется - спросите чувака с аватаркой "шлем", много ли он прог продал.
Потомчто весь сектор захватили- индусы и китайцы, которые за копейки напишут что угодно.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
27.01.2020, 04:07
Цитата Сообщение от vlisp Посмотреть сообщение
struct node_t {
  int Data;
  node_t * pNext;
}
Цитата Сообщение от Mesteriis Посмотреть сообщение
ну как теорию это надо знать, а на практике согласен полностью это атавизм
А можно пояснить, что не так и как правильно?
0
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
27.01.2020, 04:31
Цитата Сообщение от uzzik Посмотреть сообщение
очень уж сложно всё.
зато секси.

там упущены два, на мой взгляд, важных момента:
1. Почему разработчики в vector<bool> забили на стандарт
2. Как можно себе отстрелить обе ноги, юзая указатели из std::vector<T>(не bool, компилятор будет молчать).

Цитата Сообщение от ТабуретY Посмотреть сообщение
как правильно?
?
C++
1
2
3
4
5
struct node_t
{
  int     Data;
  node_t* pNext;
}; /// Точка с запятой?


Цитата Сообщение от uzzik Посмотреть сообщение
Потомчто весь сектор захватили- индусы и китайцы, которые за копейки напишут что угодно.
я бы тоже всю жизнь писал хелловорлды за 100k в месяц.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
27.01.2020, 04:36
XLAT, там полностью сообщение

определенно это не нужно преподавательской среде, которая кормит чайников таким:
так, что думаю, что нибудь другое имелось ввиду
0
 Аватар для vlisp
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
27.01.2020, 04:41
Цитата Сообщение от ТабуретY Посмотреть сообщение
А можно пояснить, что не так и как правильно?
не так все, правильно не использовать такой тип данных в серьезных проектах
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2020, 04:41
Помогаю со студенческими работами здесь

Хочу узнать вашего мнения
Доброго времени суток. Не смог создать топик в подходящей теме. Хочу узнать вашего мнения. Есть идея сделать размещение 50 уникальных...

Очень хочется узнать мнение о сайте
Очень хочется узнать Ваше строгое мнение о сайте http://malamute-nanuk.narod.ru 1. Еще не индексирован в поисковиках 2. Медленно...

Очень хочется узнать, кто может так делал?
Версия 1с 8.1 Можно ли сделать, чтобы в документе При выборе и нажатии на КнопкуВыбора в Получившемся окне Кокого либо Справочника Были...

Хочется узнать как сделать временным определённый эффект с C#?
player.GetComponent &lt;Rigidbody2D&gt; ().mass = 1.25f; Как сделать чтобы этот эффект длился только несколько секунд? Добавлено через 3...

Хотел бы узнать ваше мнения по данному БП - AEROCOOL VX-500
Хотел бы узнать по поводу Блок питания AEROCOOL VX-500, 500Вт, 120мм. Стоит он на данной системе. 1. Материнская плата ASROCK...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru