Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » C, С++ | страница 33
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 33 из 37
На страницу: Пред.  1, 2, 3 ... 32, 33, 34, 35, 36, 37  След.    Перейти:   Все страницы
Поиск в этой теме:
Железный канал: «C, С++»
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Не обязательно. Например, я сейчас работаю в чисто сишном проекте.
_________________
Конец света в конце тоннеля
    Добавлено: 19:27 18-09-2015   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Diff :
В STL?

Не знаком с данной аббревиатурой, если не затруднит - расшифруйте.
    Добавлено: 19:45 18-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Standart Template Library, основная библиотека языка C++. Все что начинается с std:: - это оно.

добавлено спустя 1 минуту:
http://ru.cppreference.com/w/cpp/container
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (20:31 18-09-2015), всего редактировалось 1 раз
    Добавлено: 20:31 18-09-2015   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Булермэн, а давай чуть с другого конца зайдем: каковы твои цели и задачи?
Ты хочешь програмать научиться, чтобы, так сказать, сменить нишу и стать высокооплачиваемым офисным кодилом программистом?
Или тебе приходится халтурку делать по приказу начальства, хотя ты не программист?

Просто какие-то странные у тебя вопросы. Если ты самообразовываешься, то язык Си - не лучший выбор для обучения программированию под виндовс. Он сейчас разве что для програмания микроконтроллеров и ардуинок хорош.

А если у тебя халтурка, то опять же, какие-то странные условия: голый си и абстрактные какие-то задачи (которые решаются одной строчкой на языках более высокого уровня).

Исповедайся нам, облегчи душу. Улыбка
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 20:46 18-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Grebomet :
язык Си - не лучший выбор для обучения программированию под виндовс. Он сейчас разве что для програмания микроконтроллеров и ардуинок хорош.

Есть еще область в которой ему замену не придумали. Ядро этого вашего линупса и все что рядом с ним находится. У меня вот сейчас в репе 25 метров исходников на нем самом и это не ардуинки Улыбка.
Впрочем, вряд ли тут такой случай.

добавлено спустя 2 минуты:
Но вообще Гребомет прав - если ты "изучал C++" и при этом не знаешь что такое STL, ты что-то делаешь драматически неправильно.
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (20:59 18-09-2015), всего редактировалось 1 раз
    Добавлено: 20:59 18-09-2015   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Diff :
Ядро этого вашего линупса и все что рядом с ним находится.

Судя по, тут никаких линупсов нет и в помине.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 21:22 18-09-2015   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Grebomet :
Он сейчас разве что для програмания микроконтроллеров и ардуинок хорош.


Судя по данному посту - тут есть линупсы. В частности RaspbianOS.
Diff :
ты "изучал C++" и при этом не знаешь что такое STL

Я не изучал С++ и не стесняюсь этого Гы-гы
    Добавлено: 22:36 18-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
Grebomet :
язык Си - не лучший выбор для обучения программированию под виндовс.


НЕ все так просто.

Языки тоже, как и оси заточены под определенные задачи, но взаимозаменяемы.

Я для себя уже давно определил такую ленейку симейства Ц:
Си - сервера и фоновые приложения или демоны, где важна скорость работы и размер бинарника.

Кресты - для приложений, работающих с графикой, где используются сложные расчеты, но также важна скорость. При этом сам STL стараюсь не использовать там, где без него действительно можно обойтись (да, дело в голове видимо Гы-гы ).

Решетка - для прочих поделок на коленке.
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."

Последний раз редактировалось: ТехноМаг (23:28 18-09-2015), всего редактировалось 1 раз
    Добавлено: 23:25 18-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
БулерМэн :
Судя по данному посту - тут есть линупсы. В частности RaspbianOS.

Разработка модулей ядра и "тут где-то есть линупсы" - это не совсем одно и то же.

БулерМэн :
Я не изучал С++ и не стесняюсь этого

Ты тут недавно рисовал диаграмму того, как ты изучал языки. С++ там был.
Да, я злой и память у меня хорошая.

ТехноМаг :
ри этом сам STL стараюсь не использовать там, где без него действительно можно обойтись

В результате тот код, который ты привел выше и в котором, по твоему мнению, есть всего одна неприятная бага - в мультитреде превращается в сыплющий коредампами кусок говна.
А STL-реализация - сюрприз - потокобезопасна. И это не последний сюрприз для любителя велосипедов.
_________________
Конец света в конце тоннеля
    Добавлено: 23:46 18-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
Diff :
коредампами кусок говна.


это Си, причем gcc style.

Плюс там важно оттого, как ты список создал. Если компилить под крестами, то оглашать новую ноду можно исключительно через malloc, иначе будет коредампы на free. И да, это однопоточная мутня Улыбка С другой стороны, в тз не указано, что нужна мультипоточность.

Был задан конкретный вопрос - был дан конретны ответ. Все остальное от лукавого.

добавлено спустя 3 минуты:
Diff :
В результате тот код


Сказал-же, где без него ДЕЙСТВИТЕЛЬНО можно обойтись.
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."

Последний раз редактировалось: ТехноМаг (00:41 19-09-2015), всего редактировалось 3 раз(а)
    Добавлено: 00:41 19-09-2015   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Diff :
Ты тут недавно рисовал диаграмму того, как ты изучал языки. С++ там был.
Да, я злой и память у меня хорошая.

Вы видимо упустили тот момент, когда я упомянул "с остальными языками можно ознакомиться для общего развития" Улыбка
С языком С++ скорее ознакомился, нежели изучал.
Что-то я сомневаюсь, что вам хочется в подробностях знать на сколько хорошо я изучал каждый из приведенных на схеме Подмигиваю
 Cкрытый текст   (кликните здесь для просмотра)
Нежнее нужно относиться к собеседнику, еще нежнее Гы-гы
Diff :
Разработка модулей ядра

Я разве говорил про модули ядра? Улыбка Не поверите, модулями не балуюсь Гы-гы

Последний раз редактировалось: БулерМэн (01:11 19-09-2015), всего редактировалось 3 раз(а)
    Добавлено: 01:07 19-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
БулерМэн :
модулями не балуюсь


А что употребляете, если не секрет?
- Драйверы?
- миниобразы?
- библиоткеи?
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
    Добавлено: 02:24 19-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
ТехноМаг :
Был задан конкретный вопрос - был дан конретны ответ. Все остальное от лукавого.

Конкретный вопрос был - где взять надежный работающий код. А не велосипед с ограниченной областью применения.

ТехноМаг :
Сказал-же, где без него ДЕЙСТВИТЕЛЬНО можно обойтись.

А меня такая постановка вопроса вводит в ступор. Зачем сознательно отказываться от возможностей используемого инструмента? Основных его возможностей? Я стираю белье в стиральной машине, но не включаю ее в сеть когда без этого можно обойтись. И кручу барабан руками. А чтобы удобнее было крутить, я в задней части прорезал дырку и приварил кусок арматуры...
Примерно так это выглядит. Я не говорю уже о том, что для каждого конкретного случая можно подобрать стандартный контейнер который будет работать на порядок быстрее твоего двусвязного списка. И даже не спрашиваю, а действительно ли твоя квалификация столь высока, что ты безошибочно можешь сказать где можно обойтись, а где нельзя - не вступив в очередную "неприятную багу".
Не забывай, твой код использовать не только тебе.

БулерМэн :
Я разве говорил про модули ядра? Не поверите, модулями не балуюсь

А зачем тогда упомянул линукс в контексте написания непременно на си?
_________________
Конец света в конце тоннеля
    Добавлено: 12:33 19-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
Diff :
где взять надежный работающий код


БулерМэн :
Может быть у кого-то завалялся пример в виде кода.


я надеюсь про ключевые слова тут все в курсе?


Diff :
Зачем сознательно отказываться от возможностей используемого инструмента?


Хмм... давай задам вопрос в виде простой задачи.

У тебя есть: молоток, пневматический молоток, дрель и, допустим, фомка. Твоя задача забить гвоздь, диаметром 0.5 мм. Какой инструмент ты выберешь?

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

С другой стороны есть обычный молоток, который будет работать ровно так, как ты умеешь им пользоваться, но для работы которого требуется только он сам и гвоздь.

Теперь к нашему диалогу: STL очень хороший инструмент, я не оспариваю, и полностью поддерживаю его использование, но не надо им пользоваться везде. Если в поставленной задачи нет 100500 однотипных классов, если программа должна делать небольшое и заранее известное кол-во операций, не надо его использовать.

Diff :
не вступив в очередную "неприятную багу".

STL от этого не защищает. Если алгоритм итоговой программы думался/писался передней левой пяткой, то хорошего из-этого все равно не выйдет.

И давай уже закроем эту тему. Она не к месту, ибо было сказано, что таки "старый добрый", где STL`а нету в принципе.

И немного примеров, дабы не казаться голословным:
На примере того-же списка с хранением информации о длине списка:

Код:

size_type  size() const                             
{
       return _size;
}


STL
Код:

/**  Returns the number of elements in the %list.  */
size_type                                             
size() const                                         
{ return std::distance(begin(), end()); }       


Т.е. вместо сложности O(1) мы получаем O(N). Иногда это бывает критично.
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."

Последний раз редактировалось: ТехноМаг (13:18 19-09-2015), всего редактировалось 1 раз
    Добавлено: 13:11 19-09-2015   
Diff
 708 EGP


Модератор
Рейтинг канала: 8(861)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
ТехноМаг :
я надеюсь про ключевые слова тут все в курсе?

Да. И про твое умение выдирать из контекста теперь тоже.

ТехноМаг :
давай задам вопрос в виде простой задачи.

Задай лучше в виде задачи из предметной области. Без молотков, микроскопов, запорожцев, мерседесов и прочих атрибутов прикладной демагогии.

ТехноМаг :
если программа должна делать небольшое и заранее известное кол-во операций, не надо его использовать.

Да еп твою мать. ПОЧЕМУ не надо? ЧЕМ именно хуже использовать list, map или vector вместо бажного рукописного списка?

ТехноМаг :
STL от этого не защищает. Если алгоритм итоговой программы думался/писался передней левой пяткой

Не съезжай. Речь про базовые типы. От багов в реализации которых она защщищает.

ТехноМаг :
ибо было сказано, что таки "старый добрый"
Не было такого сказано. Автор похоже сам не знает, на чем пишет.
И да, пример готовой реализации тех же списков на си я привел. Потокобезопасной и без неприятных багов.

добавлено спустя 1 минуту:
ТехноМаг :
вместо сложности O(1) мы получаем O(N).

Diff :
для каждого конкретного случая можно подобрать стандартный контейнер который будет работать на порядок быстрее твоего двусвязного списка

Можно подобрать и такой, который будет работать медленнее. Но зачем?
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (13:35 19-09-2015), всего редактировалось 1 раз
    Добавлено: 13:35 19-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
Diff :
Да. И про твое умение выдирать из контекста теперь тоже.

где?

Diff :
Да еп твою мать.

Вот давай без этого.

Сойдемся на том, что в STL есть свои минусы. И замнем, иначе это затянется.

Используешь STL повсеместно? Пожалуйста, никто тебе слова не скажет. Но не надо мне доказывать, что STL панацея. Это ни так. Есть задачи, где это годно и хорошо, а есть задачи, где лучше понаписать строк на 10 больше, да подебажить минут на 10 дольше, но в результате получить выигрыш как в размере бинарника, так и затрат на вычисления CPU. Мое мнение, которое я не собираюсь менять я уже озвучил несколько постов выше. Для каждой конкретной задачи нужно выбирать конкретные инструменты, исходя из постановки задачи и того, что в итоге должно получится.

Теперь по моему "велосипеду".

Товарищ БулерМен задал вопрос:

БулерМэн :
Где найти готовый код выполняющий следующие операции?
в) удаление элемента списка по его адресу
г) удаление элемента списка по указанным данным
д) вернуть адрес элемента совпадающего по указанным данным

Написать самому - можете предложить

добавлено спустя 3 минуты:
Может быть у кого-то завалялся пример в виде кода.


Первый вопрос, как ты и сказал - просил готовый, рабочий код. Тут я согласен.

Но чуть подумав, он попросил уже пример кода.

Я в свою очередь, сделав заключение, что человек активно изучает сабжевый язык, родил ему простой пример, вложив элементарную багу с выборкой последнего элемента списка. В чем я был не прав?
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
    Добавлено: 14:03 19-09-2015   
AnrDaemon
 860 EGP


Модератор
Рейтинг канала: 8(787)
Репутация: 37
Сообщения: 12301

Зарегистрирован: 17.10.2004
Маг, если тебе надо постоянно иметь размер списка, ты напишешь враппер, который будет его считать при добавлении-удалении, получив сложность O(1) обратно.
_________________
Люблю свободный полёт... :)
    Добавлено: 15:23 19-09-2015   
ТехноМаг
 360 EGP


Рейтинг канала: 2(21)
Репутация: 93
Сообщения: 2510
Откуда: Кронштадт
Зарегистрирован: 09.04.2007
Угу, при этом обойдусь без вызова той функции, заменив банальным size++ size--
_________________
(Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
    Добавлено: 15:31 19-09-2015   
Dima_Sharihin
 70 EGP


Репутация: 5
Сообщения: 155

Зарегистрирован: 19.12.2011
ТехноМаг :

Т.е. вместо сложности O(1) мы получаем O(N). Иногда это бывает критично.

GCC 5 хранит размер вектора отдельно. Теперь и STL std::vector<T>::size выполняется за O(1)

А вообще если сильно хочется убежать от STL, то как рай для диссидентов есть Qt, который есть "фреймворк в себе", и реализует почти все сам
    Добавлено: 16:31 19-09-2015   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
ТехноМаг :
заменив банальным size++ size--

Я тебя понял, спасибо. Да, кстати использую C99, дабы исключить сомнения читателей Улыбка
    Добавлено: 17:24 19-09-2015   
Железный канал: «C, С++»
На страницу: Пред.  1, 2, 3 ... 32, 33, 34, 35, 36, 37  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Трамп, я не имперский сумашедший. Я имперский политический следователь со съехавшей крышей. (ImperialHunter)

  » C, С++ | страница 33
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18