Сохранен 504
https://2ch.hk/pr/res/511121.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C++ тред

 Аноним 08/07/15 Срд 19:33:59 #1 №511121 
14363732398570.jpg
"Чей это крик? - спросил, не чая тишины, -
Какой толпы, страданьем побежденной?"

И Вождь в ответ: "То рвутся пуканы
Крестоблядей, что прожили, не зная
Pure functions, что Всевышним нам даны.

И с ними школьников дурная стая,
Чья лаба к сроку не была сдана,
Кто тонет в легаси, от жизни отставая.

Их свергла Java, не терпя пятна,
И пропасть asm'а их не принимает,
Иначе возгордилась бы вина".


Литература:

Для нюфань:
Три классических учебника для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Герберт Шилдт - C++. Базовый курс - http://padabum.com/x.php?id=15127
Роберт Лафоре - Объектно-ориентированное программирование в C++ - http://padabum.net/x.php?id=16885
Стивен Прата - Язык программирования C++ - http://bukin.su/share/%D0%9A%D0%BD%D0%B8%D0%B3%D0%B8/cpp/Prata_C++.pdf

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ - http://www.e-reading.club/book.php?book=1002058
Скотт Мейерс - Наиболее эффективное использование C++ - http://www.proklondike.com/var/file/C/Scott_Meyers_-_More_Effective_CPP(RUS).rar
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ - http://coollib.com/b/176648

Тонкости языка (для гурманов):
Ад и хардкор.
Бьерн Страуструп - Язык программирования C++ - http://www.proklondike.com/var/file/straustrup-yazyk-c-speciazdanie.zip
Андрей Александреску - Современное проектирование на C++ - http://www.proklondike.com/var/file/C/Andrei_Alexandrescu_-_Sovremennoe_Proectirovanier_CPP.rar
Герб Саттер - Решение сложных задач на C++ - http://www.studfiles.ru/dir/cat32/subj1104/file8061.html
Стандарт языка (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf

Отдельные аспекты:
Читать по необходимости.
Энтони Уильямс - Параллельное программирование на C++ в действии - http://www.proklondike.com/var/file/Paralelnie_programirovanie.zip
Николаи Джоссатис - C++. Стандартная библиотека - http://my-files.ru/Download/cdm4zk%20Джосаттис%20Н.М.%20-%20Стандартная%20библиотека%20C%20.%20Справочное%20руководство%20-%202014.djvu

Ссылки:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru/
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/
Блог Герба Саттера (на ангельском) - http://herbsutter.com/
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru/


Памятка:

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Предыдущий: >>503274
sageАноним 08/07/15 Срд 19:39:10 #2 №511124 
Красава, достойный преемник, благословляю.
Аноним 08/07/15 Срд 19:41:26 #3 №511126 
>>511121
>Николаи Джоссатис - C++. Стандартная библиотека - http://my-files.ru/Download/cdm4zk%20Джосаттис%20Н.М.%20-%20Стандартная%20библиотека%20C%20.%20Справочное%20руководство%20-%202014.djvu
Что-то не то.

http://my-files.ru/cdm4zk

http://my-files.ru/Download/cdm4zk/%d0%94%d0%b6%d0%be%d1%81%d0%b0%d1%82%d1%82%d0%b8%d1%81%20%d0%9d.%d0%9c.%20-%20%d0%a1%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%b0%d1%8f%20%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d0%be%d1%82%d0%b5%d0%ba%d0%b0%20C%20%20.%20%d0%a1%d0%bf%d1%80%d0%b0%d0%b2%d0%be%d1%87%d0%bd%d0%be%d0%b5%20%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be%20-%202014.djvu


Аноним 08/07/15 Срд 19:42:36 #4 №511128 
>>511126
Вот это я обосрался. В следующий раз исправлюсь, мамой клинус.
Аноним 08/07/15 Срд 19:55:13 #5 №511139 
>>511121
Аноны, а действительно С много быстрее С++? Я как-то пробовал тестить, но разницы не заметил.
Аноним 08/07/15 Срд 20:08:17 #6 №511150 
>>511139
Если на C++ писать в стиле C, то нет. Но никто так не делает.
Аноним 08/07/15 Срд 20:17:38 #7 №511160 
>>511139
Отключи процессорный кеш и посмотри.
Аноним 08/07/15 Срд 20:46:42 #8 №511184 
>>511160
Ты имеешь в ввиду в биосе отключить? И что, сильно проигрывает?
Аноним 08/07/15 Срд 21:34:34 #9 №511223 
>>511126
Это наверно красивее.
http://my-files.ru/Download/cdm4zk/Джосаттис%20Н.М.%20-%20Стандартная%20библиотека%20C%20.%20Справочное%20руководство%20-%202014.djvu
Аноним 08/07/15 Срд 21:50:52 #10 №511238 
>>511121
Анон с помощью чего ты работаешь с zip архивами в C++?
Аноним 08/07/15 Срд 22:04:23 #11 №511252 
>>511238
https://code.google.com/p/miniz/
Аноним 09/07/15 Чтв 00:27:15 #12 №511303 
Локальные переменные из main тоже в стэк попадают?
Аноним 09/07/15 Чтв 00:44:52 #13 №511310 
>>511303
Нет блядь в жопу они попадают в жопу!!!
Аноним 09/07/15 Чтв 00:47:37 #14 №511311 
>>511310
А глобальные?
Аноним 09/07/15 Чтв 01:05:26 #15 №511318 
>>511311
Глобальные переменные и статические члены класса выделяются при старте в сегменте данных сразу, не на стеке.
Аноним 09/07/15 Чтв 01:09:26 #16 №511321 
>>511318
>>511318
> статические члены класса
Что это и зачем? Чтобы сделать такой член надо просто static перед его объявлением написать?
Аноним 09/07/15 Чтв 01:11:34 #17 №511326 
>>511321
Да. Статический член создается один раз для всего класса, а не каждый раз новый для нового объекта класса. Нужно, например, для реализации синглтонов, ну и вообще когда что-то встречается один раз на всю программу.
Аноним 09/07/15 Чтв 01:14:18 #18 №511332 
>>511326
В сегмент данных можно положить функцию?
Аноним 09/07/15 Чтв 01:22:00 #19 №511337 
>>511332
Ты можешь создать массив и записать в него любые байты, например, те, из которых состоит функция. Но легально ее исполнить не получится придется делать reinterpret_cast к указателю на функцию, и по стандарту поведение будет неопределенным, например, может сработать защита от выполнения данных.
Аноним 09/07/15 Чтв 01:28:38 #20 №511339 
>>511337
А если в С++ пишу статическую функцию-член класса она как в сегмент данных попадает?

Всё правильно написал? В динамическую попадают ТОЛЬКО new delete?
[code lang="cpp"]
#include<bits/stdc++.h>
using namespace std;
const int Maxn=100020; //статическая
int l[Maxn],d[Maxn]; //статическая
vector<int>G[Maxn]; //статическая
int n,ans; //статическая
int sum[Maxn],cnt[202]; //статическая
int main()
{
scanf("%d",&n);
int all=0; //стековая
for(int i=1;i<=n;i++)scanf("%d",l+i); // i в какой памяти?
for(int i=1;i<=n;i++)scanf("%d",d+i),all+=d,G[l].push_back(d),sum[l]+=d;
int tot=0,maxx=max_element(l+1,l+n+1); //стековая
for(int i=1;i<=maxx;i++)
{
if(!G.size())continue;
int t=0,q=G.size()-1; //стековая
for(int j=200;j>=1&&q;j--)
{
if(q>cnt[j]){q-=cnt[j];t+=j
cnt[j];}
else{t+=jq;break;}
}
for(int v:G)cnt[v]++;
ans=max(ans,sum+t);
}
printf("%d\n",all-ans);
}
[code]

кодрандом*
Аноним 09/07/15 Чтв 01:29:17 #21 №511341 
>>511337
А если в С++ пишу статическую функцию-член класса она как в сегмент данных попадает?

Всё правильно написал? В динамическую попадают ТОЛЬКО new delete?
[code lang="cpp"]
#include<bits/stdc++.h>
using namespace std;
const int Maxn=100020; //статическая
int l[Maxn],d[Maxn]; //статическая
vector<int>G[Maxn]; //статическая
int n,ans; //статическая
int sum[Maxn],cnt[202]; //статическая
int main()
{
scanf("%d",&n);
int all=0; //стековая
for(int i=1;i<=n;i++)scanf("%d",l+i); // i в какой памяти?
for(int i=1;i<=n;i++)scanf("%d",d+i),all+=d,G[l].push_back(d),sum[l]+=d;
int tot=0,maxx=max_element(l+1,l+n+1); //стековая
for(int i=1;i<=maxx;i++)
{
if(!G.size())continue;
int t=0,q=G.size()-1; //стековая
for(int j=200;j>=1&&q;j--)
{
if(q>cnt[j]){q-=cnt[j];t+=j
cnt[j];}
else{t+=j*q;break;}
}
for(int v:G)cnt[v]++;
ans=max(ans,sum+t);
}
printf("%d\n",all-ans);
}
[/code]
Аноним 09/07/15 Чтв 02:36:50 #22 №511363 
>>511341
Статический метод попадает туда же, куда и обычные методы - в сегмент команд. Суть в том, что методы не копируются для каждого объекта класса. В смысле размещения все функции "статические", потому что все функции, которые вызываются хотя бы один раз, записываются в память и не дублируются. static-методы отличаются только тем, что они не принимают неявно первым параметром указатель на объект, и поэтому их можно вызывать не только от имени объекта как mamka.ebat (), но и вообще при отсутствии объектов класса, от имени всего класса: TvoyaMamka::ebat ().

Написал правильно, i это такая же локальная переменная, ее разместят на стеке.
Аноним 09/07/15 Чтв 12:32:19 #23 №511480 
14364343396520.jpg
Анон, вопрос не совсем по С++, но где его еще задать, если не здесь. Если я последовательно, начиная с начала, пишу в файл (в файловой системе NTFS) блоки равные размеру кластера, скажем 2 килобайта, могу ли я быть уверенным, что записав 2Кб данных, будет записан ровно один кластер (я не выйду за его пределы)? И хранит ли нтфс в кластерах какую-либо служебную информацию?
Аноним 09/07/15 Чтв 13:15:15 #24 №511500 
>>511480
Ты можешь быть уверен, что будет записано не более двух кластеров.
Аноним 09/07/15 Чтв 13:48:49 #25 №511523 
Поясните, а где узнать какие команды требуют каких функций?
Например, я пишу: >>, а мне выдаёт ошибку что >> не определена.
Аноним 09/07/15 Чтв 13:51:04 #26 №511525 
14364390645190.jpg
>>511500
Спасибо, ты мне безумно помог! Раз ты так хорошо разбираешься в вопросе, то может ты мне ответишь: как писать блоки так, чтобы они не выходили за пределы кластера?
Аноним 09/07/15 Чтв 14:33:06 #27 №511554 
>>511523
operator>> же.
>>511525
Если ты работаешь со стандартной библиотекой, то ты не можешь гибко на это влиять, т.к. считается, что этим занимается ОС, и она наиболее быстро будет их записывать, исходя из ее знаний об оборудовании. Если тебе нужно самому, то, вероятно, придется отказаться от стандартных интерфейсов для работы с файлами и самому работать с ФС на низком уровне. Потому что для обычной записи вообще не гарантируется, что что-либо пишется на диск на самом деле, ты можешь управлять сбросом буфера, но очень толсто, одной командой "сбросить все", и сделаешь только хуже с большой вероятностью. Оно может, например, кэшироваться в памяти, и не сбрасываться на диск вплоть до конца работы приложения. А чтобы работать именно с диском, тебе понадобится отдельная библиотека, наподобие boost::filesystem.
Аноним 09/07/15 Чтв 14:35:26 #28 №511561 
Анон можешь пояснить нубу за сокеты и их использование?
Аноним 09/07/15 Чтв 14:57:56 #29 №511577 
>>511561
Тебе в C-тред, лалка. Господа здесь используют нормальные высокоуровневые библиотеки вроде Casablanca и не ебутся с этим говном.
Аноним 09/07/15 Чтв 14:59:53 #30 №511579 
Поясните, я вчера начал изучать ваши кресты, а всё гугланул уже. Хотел спросить - у меня русский язык выводился как крякозябры, решилось всё setlocale(LC_ALL, "Russian"); в мейне.
Не думал что тут такие же кодо-проблемы уровня пхп.
Аноним 09/07/15 Чтв 15:24:47 #31 №511599 
>>511554
Тут вопрос не в библиотеке, и не в том, когда данные записываются, я могу вообще использовать WinAPI, вопрос в том: доступен ли пользовательским данным весь объем кластера на диске, или в нем содержится еще какая-то служебная информация? Это вопрос о структуре NTFS. Я пытался найти инфу, но там в основном о структуре тома, если ты знаешь где можно почитать, то скинь.
Аноним 09/07/15 Чтв 15:25:36 #32 №511601 
14364447365860.png
>>511579
Это ты рукажопый.
Аноним 09/07/15 Чтв 15:29:11 #33 №511605 
14364449516120.png
>>511601
Что за программа?
У меня так.
Аноним 09/07/15 Чтв 15:35:18 #34 №511610 
>>511605
Кодблокс. Компилятор gcc.
Аноним 09/07/15 Чтв 15:37:32 #35 №511614 
>>511610
А что за ось?
Аноним 09/07/15 Чтв 15:39:53 #36 №511619 
>>511614
Мята с корицей.
Аноним 09/07/15 Чтв 15:44:39 #37 №511622 
>>511619
>Мята с корицей
Годно?
Аноним 09/07/15 Чтв 15:45:47 #38 №511623 
>>511622
По сравнению с виндой удобнее. С другими линуксами не сравнивал.
Аноним 09/07/15 Чтв 15:47:03 #39 №511626 
>>511623
Чем лучше винды?
Я сам юзал убунту с юнити и опенсусе с кде. Были +, но и -.
Аноним 09/07/15 Чтв 15:53:27 #40 №511634 
>>511626
Есть официальный репозиторий с программами. Не надо вирусов бояться. Можно легко панель задач настроить. Ярлыки вверху, открытые приложения внизу. Несколько рабочих столов. Куча легко настраиваемых плагинов. Многое можно сделать всего одной командой в консоли.
Аноним 09/07/15 Чтв 16:04:50 #41 №511644 
>>511599
Нет, для служебной информации просто резервируются отдельные кластеры. В принадлежащих файлу все только по существу, нет указателей на следующий кластер или чего-то подобного. Только данные.
Аноним 09/07/15 Чтв 16:07:18 #42 №511647 
поцаны, я совсем зеленый и смотрю вот у вас список литературы для нубов, да.
Я, допустим, начал с "Страуструп Б. - Программирование. Принципы и практика использования C++". Почему его нет в рекомендованных, я сильно ошибся с выбором первой книги или это дело вкуса, объясните немного, не пинайте.
Аноним 09/07/15 Чтв 16:08:41 #43 №511649 
>>511647
Нет, не ошибся. Хорошая книга.
Аноним 09/07/15 Чтв 16:20:44 #44 №511656 
Есть что прочитать про boost на русском, чуваки?
На документации мало на оф. сайте да и не всегда все понятно.
Аноним 09/07/15 Чтв 16:21:15 #45 №511657 
>>511656
В документации *fix
Аноним 09/07/15 Чтв 16:52:05 #46 №511673 
>>511647
Да не особо. Просто книжек для ньюфагов много, а у Страуструпа бывают достаточно нудные тексты, поэтому я его не включил в раздел для ньюфагов.
>>511656
http://www.solarix.ru/for_developers/cpp/boost/boost-library.shtml
Аноним 09/07/15 Чтв 17:23:33 #47 №511690 
Поясните, вроде гуглил - пишут чтобы найти арифметический корень в спп надо использвать pow, но я пишу: pow(n, 1/2), где n =, например 9. А оно мне отвечает на любое число 1.
Аноним 09/07/15 Чтв 17:44:47 #48 №511706 
>>511690
А теперь напиши pow(n, 1.0/2) или pow(n, 0.5) или pow(n, 1f/2)
Аноним 09/07/15 Чтв 21:14:18 #49 №511941 
fscanf/fprintf не работаю со строками. Использую .c_str() для вывода, а что делать с вводом? Скорость не сильно уменьшается и всё ещё меньше fstream?
Аноним 09/07/15 Чтв 21:20:45 #50 №511945 
>>511941
Блядь, ну откуда вы лезете-то? Какие нахуй printf в крестах?
Делай раз: std::ifstream file {"TvoyaMamka.txt"};
Делай два: std::string mamka;
Делай три: file >> mamka;
Аноним 09/07/15 Чтв 21:37:11 #51 №511954 
14364670310230.png
14364670310231.png
>>511945
>>511945
У них большая разница в скорости. Те кто fscanf писал сделали за 60 мс, а те что fstream за 150 мс. При чём алгоритм был примерно одинаковый.

%Только что сам замерил программы с пика вышло 320 и 360 мс и fstream быстрее. Что можно вместо .c_str() делать и можно сразу оба варианта использовать?%%
Аноним 09/07/15 Чтв 21:37:59 #52 №511955 
14364670791460.png
А как сейчас относятся к исходникам, где нет разделения на .h/.cpp?
Ну т.е. если код всего класса пишется сразу в один файл, без выноса тел функций в .cpp - сильно говнокодом считается или всем похуй?

Неужели до сих пор вручную все кодят заголовки, и потом, когда решают добавить функцию в класс, рыскают по двум файлам?
Аноним 09/07/15 Чтв 21:55:59 #53 №511962 
>>511954
В прошлом треде про это было жи. Тебе надо снять флаг совместимости с stdio.
Аноним 09/07/15 Чтв 21:56:47 #54 №511964 
>>511955
Это у тебя продлится до первой получасовой компиляции проекта из одних заголовков.
Аноним 09/07/15 Чтв 21:58:16 #55 №511965 
>>511955
Два файла делают тогда, когда распространяют библиотеку без исходного кода, в остальных случаях это не принципиально. Стандартная библиотека написана без разделения.
Аноним 09/07/15 Чтв 22:00:27 #56 №511968 
>>511965
>STL
>без разделения
>T for tamplates
>без исходного кода

Аноним 09/07/15 Чтв 22:01:42 #57 №511970 
>>511962
В стандарте http://www.cplusplus.com/reference/ios/ios_base/sync_with_stdio/ про файлы ничего не написано.
Какие подводные камни при использовании cin.tie(0)?
Аноним 09/07/15 Чтв 22:36:20 #58 №512001 
Я вчерашний анон, который спрашивал про rvalue, скажите мне, зачем допускается такая возможность:

int&& tmp=90;
cout << std::is_rvalue_reference<decltype(tmp)>::value << '\n'; //true

Ведь по сути tmp, это обычный int и как rvalue его использовать нельзя
Аноним 09/07/15 Чтв 22:41:36 #59 №512009 
>>511968
Ты совсем упоротый? Открой какой-нибудь list.h там будут описаны и классы и функции, если ты найдешь в стандартной библиотеке list.cpp то сообщи.
Аноним 09/07/15 Чтв 22:47:39 #60 №512015 
>>511970
Файлы не ускоряют. Проверил. Но при выводе с printf и перенаправление вывода в файл из консоли 500 мс, а с выводом в fprinf 360.
Аноним 09/07/15 Чтв 23:01:32 #61 №512030 
>>511941
%s и массив char. Для iostream естьпара советов, которые делают его быстрее scanf, поищи аналоги для fstream http://habrahabr.ru/post/246257/
Аноним 09/07/15 Чтв 23:03:03 #62 №512031 
>>512030
Проверил эти советы. Но fstream они не ускоряют.
Аноним 09/07/15 Чтв 23:14:28 #63 №512035 
>>512001
Нет, tmp это таки будет rvalue reference, сам объект 90 будет жить, пока живут ссылки на него. Другое дело, что в метод его нельзя передать, если параметр объявлен как &&, а если параметр & или по значению, то можно. Я, если честно, не совсем понял, почему так происходит, вся эта тема с rvalue оказалась глубже, чем я думал. Но абсолютно точно tmp не будет непосредственно интом в твоем случае.
Аноним 09/07/15 Чтв 23:54:25 #64 №512075 
поясните нюфане, чем так using namespace std плох?
Аноним 09/07/15 Чтв 23:57:54 #65 №512077 
>>512075
Ничем. Кто тебе такое сказал? Где его не надо использовать. Максимум что может произойти это конфликт имён в больших программах.
Аноним 10/07/15 Птн 00:04:11 #66 №512080 
поцаны, обоснуйте за assert();
Насколько мне известно, то он помогает отлаживать программы.
Но у меня возник вопрос, он умеет выводить сообщения об ошибке только в консоль или же нет. Да и ваще нужен ли он? Или нахуй не сдался, если не собираешься крупного пилить ничего.
Аноним 10/07/15 Птн 00:18:03 #67 №512085 
>>512035
>сам объект 90 будет жить, пока живут ссылки на него
но я же не могу уничтожить эту ссылку, его время жизни такое же как и у инта в этой функции.

>в метод его нельзя передать, если параметр объявлен как &&, а если параметр & или по значению, то можно
и инт точно также

> вся эта тема с rvalue оказалась глубже, чем я думал
Да это просто какой-то пиздец! А потом они удивляются, почему, блядь, все на яву переходят.
Аноним 10/07/15 Птн 00:46:35 #68 №512101 
Платиновый вопрос.

Я нуб, прочитал книгу Шилдта Базовый курс C++ (из шапки). Перед прочтением думал, что знаю плюсы, надо разве что библиотеки вроде буста и qt4 выучить. Оказалось, что вообще не знаю нихуя.

Придумайте для меня задание (проект какой-нибудь), чтобы у меня был стимул изучить актуальные библиотеки. А то скучно самому высосанные из пальца задачки решать.
Аноним 10/07/15 Птн 00:54:33 #69 №512117 
>>512101
Блокнот уже сделал?
Аноним 10/07/15 Птн 01:07:55 #70 №512124 
14364796754560.jpg
>>512101
Напиши два драйвера для мышки: первый может передвигать указатель только в право-влево, а второй - вверх-вниз, один устанавливаешь на одну мышку, второй на вторую. Таким образом тебе чтобы навести курсор в нужное место нужно будет работать обеими руками, причем в разных плоскостях. Не благодари.
Аноним 10/07/15 Птн 06:09:18 #71 №512167 
14364977587280.gif
А как сделать, чтобы экземпляры класса могли взаимодействовать друг с другом?
Чтобы один экземпляр через свой метод мог вызывать методы другого экземпляра.
Или чтобы один экземпляр через свой метод мог менять свойства другого экземпляра.
sageАноним 10/07/15 Птн 06:50:52 #72 №512171 
>>512167
Ты еще спроси, как в носу поковыряться.
Аноним 10/07/15 Птн 06:58:21 #73 №512174 
>>512171
Ну то есть ты не знаешь. Понятно. Подождем следующего.
Аноним 10/07/15 Птн 07:10:16 #74 №512175 
>>512167
>>512174
Передавай второй экземпляр в качестве аргумента и вызывай себе. Это ничем принципиально от передачи чисел и строк не отличается, то есть это правда как в носу ковыряться

мимо-не->>512171
Аноним 10/07/15 Птн 07:21:10 #75 №512178 
>>512167
На каком этапе у тебя возникли проблемы?
Аноним 10/07/15 Птн 07:33:08 #76 №512182 
>>512178
Вот на этом >>512175
>Передавай второй экземпляр в качестве аргумента и вызывай себе
Затупил чет. Терь просветлело. Спасибо.
Аноним 10/07/15 Птн 07:50:55 #77 №512187 
>>512009
>T for tamplates
>если найдешь .срр файл
Сколько хеловордов уже написал?
Аноним 10/07/15 Птн 08:48:19 #78 №512199 
>>512085
>но я же не могу уничтожить эту ссылку, его время жизни такое же как и у инта в этой функции
Ну, лол, так и есть. Кресты это тебе не утиный язык. Если tmp выглядит как инт и применяется как инт, то это еще не значит, что он будет инт.
Аноним 10/07/15 Птн 08:50:57 #79 №512202 
>>512075
Тем, что при использовании нескольких библиотек даже в небольшой программе могут перекрываться имена, в зависимости от того, какой using nsmespace сделали раньше. И такую ошибку хуй найдешь потом. Лучше написать using std::TvoyaMamka для сущностей, которые используешь, тогда, по крайней мере, ты сможешь точно знать, откуда взято имя.
Аноним 10/07/15 Птн 08:52:14 #80 №512203 
>>512080
Я не пользовался. Для компиляционных проверок есть static_assert, для тестирования удобнее сразу хуярить в gmock.
Аноним 10/07/15 Птн 08:55:00 #81 №512206 
>>512101
Напиши какую-нибудь 2D игру для джвух пользователей. Одновременно научишься в формочки, контейнеры, сетевое взаимодействие.
Аноним 10/07/15 Птн 08:56:09 #82 №512207 
>>512009
Мсье никогда не собирал gcc?
Аноним 10/07/15 Птн 08:58:41 #83 №512209 
>>512124
Как он мышки-то отличит, если они usb?
Аноним 10/07/15 Птн 11:00:49 #84 №512246 
>>512009
Вот я тебе открыл вектор.
http://pastebin.com/EFrJj4Ve
Аноним 10/07/15 Птн 11:32:57 #85 №512260 
14365171777810.jpg
Решил для себя выучить c++, потому что я любитель таких оладий. Учу по бумажной версии "Объектно-ориентированное программирование в C++ " и дико охуеваю от количества опечаток, как понимаю такая херня только в русской версии. Но появился один интересный код, цитата
[code]
#include <iostream>
#include <cstring>
using namespace std;
////////////////////
int main() {
char str1[] = "Malen'coi yolochke holodno zimoi.";
const int MAX = 80;
char str2 [MAX];

for ( int j = 0; j <= strlen(str1); j++)
str2[j] = str1[j];
str2[j] = '\0';

cout << str2 << endl;

return 0;

}
[/code]

Компилятор g++.exe дико охуевает от происходящего и плюется ошибками. В частности строка "str2[j] = '\0';" бред сивой кобылы, ибо переменная j не работает вне области видимости цикла for. Так же "for ( int j = 0; j <= strlen(str1); j++)" по той причине что strlen(str1) возвращает unsigned значение, а компилятор не хочет сравнивать signed и unsigned.

Я ебанул вот так:
[code]
#include <iostream>
#include <cstring>
using namespace std;
////////////////////
int main() {
char str1[] = "Malen'coi yolochke holodno zimoi.";
const int MAX = 80;
char str2 [MAX];

for (unsigned int i = 0; i <= strlen(str1); i++) {
if (i < strlen(str1)){
str2 = str1;
}
else{
str2 = '\0';
}
}

cout << str2 << endl;

return 0;

}
[/code]
И два вопроса. Норм я сделал? Может я не понял дохуя хитрый ход автора в его примере?
Аноним 10/07/15 Птн 12:18:18 #86 №512274 
>>512260
Насчет счетчика, такой код как в книге будет вроде работать с майкрософтовским компилятором. Так как ты сделал вообще не вариант, или обяви переменну счетчика перед циклом, или сохрани длину строки strlen(str1) в отдельную переменную size (например) и в цикле будет условие i < size, после цикла str2[size] = '\0';
Насчет сравнения беззнаковых с знаковыми - у тебя наверное жесткие настройки компилятора, он должен такое компилировать, просто что это UB. Ну и так как ты сделал это правильно, UB желательно не допускать, особо хитрожопые компиляторы могут вообще такой цикл выкинуть с таким сравнением как в книге.
Аноним 10/07/15 Птн 13:54:24 #87 №512315 
>>512246
И что? Все определено в одном файле.
Аноним 10/07/15 Птн 15:17:27 #88 №512362 
>>512315
Да ты что? Исхоного кода нет?
Аноним 10/07/15 Птн 15:30:12 #89 №512370 
>>512362
Что значит нет? Ты мои посты читал вообще? Я говорю, что сейчас цпп и х объединены, как там может не быть исходного кода?
Аноним 10/07/15 Птн 15:33:37 #90 №512371 
>>512207
>Мсье никогда не собирал gcc?
А нахуя? Обычно мне помогает
>pkgin install clang
Аноним 10/07/15 Птн 15:47:37 #91 №512376 
>>512370
>Два файла делают тогда, когда распространяют библиотеку без исходного кода
>Открой какой-нибудь list.h там будут описаны и классы и функции,

Аноним 10/07/15 Птн 16:09:32 #92 №512388 
>>512376
Какая часть
>Стандартная библиотека написана без разделения.
непонятна?
Аноним 10/07/15 Птн 16:10:15 #93 №512389 
>>512376
>Два файла делают тогда, когда распространяют библиотеку без исходного кода
ну правильно, стандартная библиотека распространяется с исходным кодом, и там один файл
>описаны
я не очень удачно выразился
Аноним 10/07/15 Птн 16:16:18 #94 №512391 
нуфажище итт

Какая среда для С++ лучше подходит для ньюфага(раньше кодил только на кубейсике и паскале,лол)?
Аноним 10/07/15 Птн 16:26:02 #95 №512395 
>>512391
Если не смущает операционная система виндоуз то Visual Studio. Альтернативные варианты Code::Blocks и Qt Creator - это из тех что проще всего навернуть. Совсем небольшие куски кода можно в ideone тестить.
Аноним 10/07/15 Птн 16:39:48 #96 №512412 
Анончики, а возможно ли норм кодить из под лайвсиди убунты ?
Аноним 10/07/15 Птн 16:42:22 #97 №512416 
>>512412
А нормально ли вообще что-то делать из под лайфсиди?
Аноним 10/07/15 Птн 16:54:31 #98 №512424 
>>512416
Что-то - да.
Аноним 10/07/15 Птн 17:11:35 #99 №512430 
>>512391
Vim + gcc, конечно же.
Аноним 10/07/15 Птн 18:43:45 #100 №512486 
чуваки, есть ли что-нибудь по типу книги о WinAPI или же придется вылизывать msdn и разные статейки в гугле?
Аноним 10/07/15 Птн 19:17:00 #101 №512515 
14365450209010.jpg
>>512486
Аноним 10/07/15 Птн 19:39:18 #102 №512538 
>>512274
>str2[size] = '\0';
А не str2[size+1], чтоб место было под этот новый символ?
Спасибо за ответ.
Аноним 10/07/15 Птн 19:40:41 #103 №512543 
>>512395
Нахуя ты ему визуал студио и кодеблокс посоветовал? Зачем ему такие монстры?
Аноним 10/07/15 Птн 19:43:32 #104 №512547 
>>512538
В индексах от 0 до size-1 находятся символы строки, по индексу size нужно вписать терминальный ноль.
Аноним 10/07/15 Птн 19:46:58 #105 №512550 
>>512543
А что ты новичку посоветуешь? Vim? Emacs? Студия потому-что скачал и программируешь, даже формошлепствовать можно. Кобдблокс - скачал правильную версию (с компилятором) и программируешь. Размер не сильно важен. Наберет опыта - выберет инструмент под свои цели.
Аноним 10/07/15 Птн 20:04:37 #106 №512559 
Кстати, вчера VS13 community поставил.
На крестах третий год уже ни строки не писал. Захотелось посмотреть, что изменилось.

Нихуя не изменилось. Разработка под C++ как была, так и осталась адскими муками. Начиная с самого малого. Вот надо мне заюзать класс из сторонней библы. Как я в других языках/IDE это делаю? Project properties > sources > add dir. Всё. Что я должен сделать в VS? То же самое плюс указать каждую папку библы в additional directories и вручную включать через include хуй знает какой хедер, чтоб этот класс появился - и так в каждый файл с кодом.
И пока не просидишь в гугле и не найдешь название хедера, в intellisense этот класс даже не появится. Т.е. приходится реально зубрить внутреннее устройство фреймворков, вместо того чтобы нажать ctrl+space, ввести часть названия класса на интуитивном уровне (Sprite, i.e.), и насладиться автодополнением в полном виде.

Может, я таки не разобрался, и есть плагины/опции студии, позволяющие избегать этого геморроя и автоматизирующие процесс?
Аноним 10/07/15 Птн 20:19:19 #107 №512565 
>>512559
А когда в "других IDE" ты указываешь путь, а по нему, допустим, несколько версий либы для разных сборок, ты что будешь делать-то, ммм? В VS подключение в джва действия: добавляешь папку с либой в additional headers и добавляешь пусть к самому .lib. Действий на 10 секунд, зато гибкости больше на порядок. Можно регулировать debug/release версии либы и вот это все.
Аноним 10/07/15 Птн 20:22:22 #108 №512568 
>>512559
В библиотеке есть TvoyaMamka.h и TvoyaBabka.h. В обоих есть классы Korzinochka с разными интерфейсами. Ты пишешь Korz без подключения хедера, что по-твоему происходит?
Аноним 10/07/15 Птн 20:54:15 #109 №512582 
Котаны, сижу читаю Лафоре и никак не могу понять, почему цикл из ссылки ниже не скатывается в бесконечное выполнение, а успешно завершается:

http://ideone.com/Ii3qau

Как вообще условие (-1 < 16) может вернуть false?

/на закоменченое не обращайте внимания/
Аноним 10/07/15 Птн 20:59:56 #110 №512588 
>>512582
((size_t)-1 < 16)

Ладно, предыдущий вопрос снимается, объясните плз почему данное выражение возвращает false
Аноним 10/07/15 Птн 21:04:24 #111 №512592 
>>512486
Гугли Литвиненко Н.А. - Технология программирования на С++. Win32 API-приложения. Очень хорошая книга для начинающих
Аноним 10/07/15 Птн 21:07:18 #112 №512595 
>>512588
Потому, что size_t — unsigned.
Аноним 10/07/15 Птн 21:07:54 #113 №512596 
>>511337
Проиграл.
Какой же хуйней вы занимаетесь в 2015 году.
Никогда не интересовался плюсами, ради интереса решил зайти, а тут ТАКОЕ.
Аноним 10/07/15 Птн 21:11:45 #114 №512600 
>>512565
>путь, а по нему, допустим, несколько версий либы для разных сборок
Даже больше скажу. Обычно у меня это несколько натив расширений для андроида, iOs, библиотеки для PC, либы для веба. 4 сборки. Никаких проблем, все обрабатывается и подключается автоматически.

>добавляешь папку с либой в additional headers и добавляешь пусть к самому .lib. Действий на 10 секунд
Хех. А про прописывание ручками include в каждом файле (а их сотни)? Далеко ходить не надо - пока не пропишешь include <string>, у тебя нет доступа к классу std::string. Тогда как в том же не самом лучшем эклипсе import-ы прописываются автоматически и в intellisense показываются все (вообще все) классы.
Вот я и интересуюсь - мб можно так же в VS сделать? Похоже, нет.

>>512568
Высвечитыается список:
Korzinochka - TvoyaMamka
Korzinochka - TvoyaBabka
Выбираешь один из них (enter или вниз, enter) - эклипс сам добавляет соответствующий хедер.
Аноним 10/07/15 Птн 21:20:30 #115 №512602 
>>512600
>Выбираешь один из них (enter или вниз, enter) - эклипс сам добавляет соответствующий хедер
Хм. Надо будет тогда глянуть. А что там насчет отладки, можно смотреть/менять переменные? Многопоточная отладка есть?
Аноним 10/07/15 Птн 21:21:17 #116 №512603 
>>512596
За то мы победили
Аноним 10/07/15 Птн 21:22:55 #117 №512604 
>>512596
>судит о языке по вопросам ньюфагов
Аноним 10/07/15 Птн 21:27:57 #118 №512607 
>>512604
По ответам же.
Функцию передавать массивом байтов.
Аноним 10/07/15 Птн 21:31:43 #119 №512609 
>>512607
Ты вопрос о том, можно ли положить функцию в сегмент данных. Ты вот на своем питоне или на чем ты там пишешь можешь?
Аноним 10/07/15 Птн 21:33:31 #120 №512611 
>>512607
Какая передача функции, лол? Для нормальной работы с передачей первоклассных функторов не нужно перезаписывать код, они же энивей реализуются через указатели. А товарищ спрашивал про что-то из разряда самомодификации, исполнения стека и вот этого всего. Подобное байтоебство вообще относительно легально только в виде голого асма, никто и никогда не предоставляет таких средств жи. Тем не менее, после некоторых плясок на крестах можно такое провернуть, а вот в джаве/питоне/функциональной параше ты соснешь с такими задачами абсолютно точно.
Аноним 10/07/15 Птн 21:33:51 #121 №512612 
>>512609
>>512611
Хайв.
Аноним 10/07/15 Птн 21:34:49 #122 №512613 
>>512602
С многопоточностью не работал (игры и простые аппы пилил). Отладка норм, все смотрится и изменяется на лету, но вроде отмотки назад (intellitrace?) нет. Но это для java/as3. С крестами там, похоже, жопа еще больше, чем в VS, я час проебался с хелло вордом, но так его и не запустил. Каждые 5 минут ошибки, и на эти ошибки куча топиков в гугле, т.е. это типа так и надо. Все через жопу.

Еще мне жутко не хватает рефакторинга. В эклипсовых IDE выделяешь класс, жмешь хоткей (ctrl+shift+r), вводишь новое название - все переименовывается само - и классы и конструкторы, и файлы, и хедеры. Но уж это я надеюсь в плагинах VS найду.
Аноним 10/07/15 Птн 21:39:28 #123 №512615 
>>512613
Нене, рефакторинг уже завезли в VS2015, по ощущениям охуенно. Там вообще много добавили, например, графики занятой памяти и загрузки ядер. Анимированные, блядь, графики, в реалтайме, я аж теку. Только предрелизная версия не до конца вылизана, но релиз уже скоро.
Аноним 10/07/15 Птн 22:26:16 #124 №512630 
>>512611
>статические члены класса выделяются при старте в сегменте данных
>статические функции могут быть статическими членами класса
>значит статические функции-члены класса тоже хранятся в сегменте данных?
>НЕТ!! в сегменте данных хранятся только МАССИВЫ!!!! Сделай функцию МАССИВОМ!!!
Аноним 10/07/15 Птн 22:58:51 #125 №512642 
Почему сегмент стэк растёт с конца? Его можно расширить?
Аноним 10/07/15 Птн 23:02:14 #126 №512645 
>>512630
Речь шла про данные, сука, не путай. Только потом он про статические методы спросил. Так можно до чего угодно доебаться.
Аноним 10/07/15 Птн 23:02:42 #127 №512646 
>>512642
Потому что с начала в нем растет куча.
Аноним 10/07/15 Птн 23:05:21 #128 №512647 
>>512646
А что происходит когда они сталкиваются?
Аноним 10/07/15 Птн 23:07:19 #129 №512649 
>>512647
Гроб гроб кладбище пидор. Защита сработает и все вылетит к хуям.
Аноним 10/07/15 Птн 23:09:34 #130 №512650 
>>512649
И расширить его нельзя? Почему нужно разное количество памяти чтобы порвать стэк и кучу?
Аноним 10/07/15 Птн 23:17:11 #131 №512656 
>>512645
А теперь мне дураку расскажите. Например обыные переменные и указатели хранятся на стеке. А массивы типо int m[5] хранятся где? А функции как хранятся? Указатель в стеке, тело в куче?
Аноним 10/07/15 Птн 23:35:45 #132 №512670 
>>512650
Потому что в современных системах не используется сегментная организация памяти. Используется страничная, когда каждому процессу присваиваются определенные страницы виртуальной памяти, которая не равна по размеру аппаратной. Процесс видит только виртуальную память, причем только свои страницы, а при обращении по адресу процессорное ядро аппаратно просматривает таблицу страниц и преобразует виртуальный адрес в настоящий. Страницы тоже делятся на страницы с "данными" и "командами". Но никто не мешает дополнительно подкачать сколько угодно виртуальных страниц можно адресовать до 2^64 байт, ну ты понел, которые хранятся на диске, пока не используются. Поэтому все ограничения на размер идут не от реальных размеров сегментов, а от того, что ОС не хочет выделять процессу моар. А т.к. считается, что куче и стеку нужно разное количество памяти, то и ограничения разные.
Аноним 10/07/15 Птн 23:41:05 #133 №512672 
>>512656
Ну вот смотри. Ты написал программу, откомпилировал, она преобразовалась в машинный код. Когда ты запускаешь ее, загрузчик ОС берет весь код из файла и копирует в область памяти с кодом. В файле отдельно описаны статические переменные, для них загрузчик зарезервирует место в области данных. А вот все остальные переменные не требуют никаких отдельных действий загрузчика с памятью. Какое-нибудь {int a;} преобразуется в PUSH/DEC BP в самом коде, где она используется. Поэтому они и называются автоматическими, в том смысле, что они автоматически создаются самим кодом на стеке, без участия загрузчика. Массивы в этом плане ничем не отличаются.
Аноним 10/07/15 Птн 23:44:26 #134 №512673 
>>512672
Спасибо, все понятно
Аноним 10/07/15 Птн 23:46:33 #135 №512675 
>>512670
Про виртуальную память есть что почитать? Советовали лекции в которых много раз про виртуальную память упоминают, а что это не поясняют. и книгу http://ftp.vtyulb.ru/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20%28%D0%BC%D0%B0%D1%88%D0%B1%D1%83%D0%BA%29.pdf. Прочитать книгу достаточно чтобы понять виртуальную память или надо отдельно изучать?
Аноним 10/07/15 Птн 23:48:51 #136 №512678 
>>512675
Ну, я после Машечкина все кристально понял, например. Правда, когда он анально карает за пропуски лекций, а зимой хардкорный экзамен, это немного другое, чем читать книгу.
Аноним 10/07/15 Птн 23:56:30 #137 №512683 
ОП, почему не ведётся счёт тредов и нет архивачей?
https://arhivach.org/thread/94971/
https://arhivach.org/thread/94972/
Аноним 11/07/15 Суб 00:06:49 #138 №512687 
>>512683
Я же скромняша. Не уверен был, что кому-то это нужно будет потом. Если хотите, буду схоронять, конечно. Алсо, вообще пилите пожелания/предложения/литературу для шапки/что угодно. В новом треде тогда добавлю по реквестам.
Аноним 11/07/15 Суб 00:29:57 #139 №512696 
>>511601
suka pidor
Аноним 11/07/15 Суб 00:35:09 #140 №512698 
>>511579
В винде большие проблемы из-за codepage 866 в консоли. Надо или сохранять файл в 866, или подменять cout на что-то с конвертом, или менять шрифт в свойствах cmd.exe через alt-пробел. А в линуксах проблем не помню.
Аноним 11/07/15 Суб 00:42:15 #141 №512704 
>>512687
>литературу для шапки
Может Бьерне Страуструп "Программирование. Принципы и практика использования C++" в раздел для новичков?
>пожелания
Переконвертить все книги из ОП-поста в пдф, выложить прямую ссылку на файл чтобы можно было просмотреть в браузере и сократить ссылку с помощью гугла. Возможно для тебя одного это будет сложно поэтому я разберусь как это сделать и помогу.
Аноним 11/07/15 Суб 02:37:43 #142 №512724 
14365714639490.png
14365714639501.png
Как выполнить это задание с помощью вычисление остатка.Можно ли считать что задание выполнил.
Аноним 11/07/15 Суб 02:44:25 #143 №512726 
>>512724
>Как выполнить это задание с помощью вычисление остатка.
if ((а % 2) == 0) { четное }
Аноним 11/07/15 Суб 02:44:44 #144 №512727 
>>512724
Что ты написал?
if(a%2){нечётное} else{чётное}
Аноним 11/07/15 Суб 02:46:55 #145 №512729 
>>512724
У страуструпа плохие упражнения.
Аноним 11/07/15 Суб 02:51:57 #146 №512730 
>>512729
А где хорошие?
Аноним 11/07/15 Суб 02:54:43 #147 №512731 
>>512730
Задачки в интернете. Их больше. Писать быстрее.
Аноним 11/07/15 Суб 09:48:42 #148 №512762 
>>510638
>Недавно дочитал эту книгу. Твоя первая? До неё что читал?

Вопрос к индивиду из предыдущего треда: все упражнения сделал из неё? Да, я про эту >>511647 книгу.
Аноним 11/07/15 Суб 10:00:43 #149 №512766 
>>512607
А почему бы и нет? Это рождает охуительный возможности по обфускации.
Аноним 11/07/15 Суб 10:19:48 #150 №512768 
>>512704
>Может Бьерне Страуструп "Программирование. Принципы и практика использования C++" в раздел для новичков?

Можно, но приготовьтесь жрать блины говно с лопаты.
быстрые потоки ввода / вывода fstream 1 / 2 11/07/15 Суб 11:28:26 #151 №512796 
>>511954
>>512015
>std::ios::sync_with_stdio(false);

Снятие флажка синхронизации с сишными потоками ввода/вывода ускоряет <iostream> , а не <fstream> . Ещё немного платины на эту тему:

>Насколько медленны iostreams?
http://habrahabr.ru/post/246257/

А теперь о том, как собственно увеличить скорость <fstream> . Дело в том, что потоки ввода/вывода в C++ имеют кроссплатформенную реализацию, и эта реализация может с разной скоростью работать на разных операционных системах / компиляторах. Как работают потоки (since C++11): им даётся имя файла std::string и они конструируют объект типа std::fstream (например std::fstream , это уже ты решаешь), который имеет... та-дамм! Буфер для чтения и/или записи.

(продолжение следует)
быстрые потоки ввода / вывода fstream 2 / 2 11/07/15 Суб 11:29:33 #152 №512797 
>>512796 Размер буфера и специфика работы с ним определяются спецификой операционной системы и колдовскими настройками компилятора, т.е. выходит за рамки кроссплатформенности в каждом конкретном случае, вследствие чего реализация скрыта внутри. Т.е. если, например, писать некий char array в файл, то выполняется двойная работа: сначала он пишется в буферный char array, потом буферный char array пишется в файл. Всё это снижает скорость в некоторых случаях более чем в 2 раза, зато гарантированно работает на любой платформе / операционной системе. Но буфер можно отключить (при помощи публичного метода), если ты уверен, что разобьёшь свой массив на подмассивы размера строго меньше либо равного размеру буфера в твоей ОС.

>std::ofstream ofs; //only writing
>ofs.rdbuf()->pubsetbuf(0, 0); //both zeros to disable buffer
>ofs.open(filename, std::ios::binary); //std::string filename

>for (std::size_t i = 0; i < n; ++i)
>    fill_array(any_type_array, i);
>    ofs.write(reinterpret_cast<const char*>(any_type_array), array_size); //std::streamsize array_size

Важный момент:
http://stackoverflow.com/questions/16605233/how-to-disable-buffering-on-a-stream

>If setbuf(0,0) is called on a stream before any I/O has occurred on that stream, the stream becomes unbuffered.
>... Note that some compilers (eg. gcc) see opening a file as an I/O operation on the stream, so pubsetbuf should be called before opening the file (as above).
Аноним 11/07/15 Суб 11:34:08 #153 №512803 
>>512797
fast fix

>for (std::size_t i = 0; i < n; ++i)
>{
>    fill_array(any_type_array, i);
>    ofs.write(reinterpret_cast<const char*>(any_type_array), array_size); //std::streamsize array_size
>}

Впрочем, если пишешь знаковый char_array, то всё ещё проще:

>for (std::size_t i = 0; i < n; ++i)
>{
>    fill_array(signed_char_array, i);
>    ofs.write(signed_char_array, array_size); //std::streamsize array_size
>}
Аноним 11/07/15 Суб 12:43:05 #154 №512847 
>>512704
На самом деле у меня вся литература и дохуя по крестам, не вошедшего в шапку уже есть в pdf/djvu, только заливать я не знал куда, поэтому искал по новой на книгообменниках. Вообще, годная идея же, надо тогда найти, где размещать будем это все, чтобы прямая ссылка не привязывалась к ойпи.
Аноним 11/07/15 Суб 12:47:00 #155 №512849 
>>512727
Но зачем, лол? if (a & 1) {нечетное} же.
Аноним 11/07/15 Суб 14:30:24 #156 №512897 
>>512515
Эту книку стоит читать не прочитав версию "без учёта специфики х64"
Аноним 11/07/15 Суб 14:42:29 #157 №512903 
>>512847
Пробовал на dropbox, но там качать неудобно. Пробовал на какой-то вечный файлообменик, но там скорость маленькая. В контакт получилось удобнее всего. Так https://vk.com/doc10903696_406254436 или https://goo.gl/43uPI1 но только пдф надо. Если боишься что кто-то про твою страницу узнает могу сам всё залить. Только выложи пдэфы которые есть чтобы самому не конвертировать.
Аноним 11/07/15 Суб 14:46:17 #158 №512904 
>>512903
Забыл добавить что прямая ссылка нужна была чтобы не искать кнопочку для предпросмотра. Поэтому такая тоже пойдёт.
Аноним 11/07/15 Суб 15:06:40 #159 №512915 
>>512796
>>512797
>>512803
Не понял. Как в этом случае выводить int, string или double?
Аноним 11/07/15 Суб 15:35:22 #160 №512936 
>>512915
>Как в этом случае выводить int, string или double?

Выводить куда, в файл? Там же русским по белому написано:

>for (std::size_t i = 0; i < n; ++i)
>{
>    fill_array(any_type_array, i);
>    ofs.write(reinterpret_cast<const char>(any_type_array), array_size); //std::streamsize array_size
>}

Если у тебя единственное int number записать надо, то, если не ошибаюсь,
>ofs.write(reinterpret_cast<const char>(&number), static_cast<std::streamsize>(sizeof(int)));

Но с С++11 можно использовать перегруженные операторы >> << и для бинарного I/O, поэтому
>std::ofstream ofs; //only writing
>ofs.rdbuf()->pubsetbuf(0, 0); //both zeros to disable buffer
>ofs.open(filename, std::ios::binary); //std::string filename
>ofs << number; //int number
Аноним 11/07/15 Суб 15:36:23 #161 №512938 
>>512936
Разметка говно и сожрала пару *, но где начался курсив, и где он закончился, там и сожрало.
Аноним 11/07/15 Суб 15:37:49 #162 №512940 
>>512936
>std::ios::binary
Это обязательно?
Аноним 11/07/15 Суб 15:46:46 #163 №512943 
>>512903
Во вконтаче периодически копирасты трут книги, не?
Аноним 11/07/15 Суб 15:55:59 #164 №512944 
>>512943
Не знаю. Можно пока так попробовать. Если что придётся на дропбокс заливать.
Аноним 11/07/15 Суб 16:05:06 #165 №512946 
14366199062500.png
>>512936
Код с пика выполняется 800 мс, а без оптимизации 330. Что я не так делаю?
Аноним 11/07/15 Суб 16:15:32 #166 №512947 
>>512944
Вот мои схороненные. Нюфажеские я не схоронял, но они в шапке уже по прямым ссылкам, так что можно взять оттуда для конвертации в pdf.
http://my-files.ru/9n9v2o
Аноним 11/07/15 Суб 16:19:45 #167 №512948 
14366207850120.png
>>512947
Тут что-то не так со скоростью. Хотя перед контактом попробую сюда залить.
Аноним 11/07/15 Суб 17:56:04 #168 №512964 
>>512946
> эта цветовая схема
какой же ты поехавший блять
Аноним 11/07/15 Суб 18:05:02 #169 №512967 
14366271025380.png
>>512947
1. Там повторяются старые и новые издания. Ничего страшного если залью только новые? Если надо будет потом старые добавлю. На пике выделил те что можно не заливать.
2. Джоссатис больше чем пол гига весит. Попробуй у себя поискать пдф поменьше, а я ещё раз в инете гляну. Если не найдём оставим то что теперь в шапке.
3. Записал годы выпуска английской версии. В интернет при поиске показывает год выхода русской версии. Может для удобства поиска их через / написать? Или это излишне?
Аноним 11/07/15 Суб 18:06:55 #170 №512968 
>>512964
Эта дэфолтная. Что нет так? Есть гайд по кодблоксу? Не знаю как и зачем её поменять.
Аноним 11/07/15 Суб 18:18:19 #171 №512973 
14366278998180.png
>>512968
http://tonsky.livejournal.com/221767.html
вот этого почитай
Алсо на пикрилейтеде моя схема. Подсвечены только идентификаторы, комментарии и текст в кавычках. Вообще не понимаю, почему по дефолту всегда и везде подсвечивается всякое говно вроде int или using, блять, в этом же вообще смысла нет.
Аноним 11/07/15 Суб 18:23:10 #172 №512975 
>>512968
>и зачем
Коментариями не пользуешся?
Аноним 11/07/15 Суб 18:26:13 #173 №512976 
14366283738120.png
>>512973
У тебя цвет идентификаторов и текста в кавычках похож. А статью эту на хабре видел.
>>512975
А это тут причём? Он тоже подсвечивается.
Аноним 11/07/15 Суб 18:28:19 #174 №512977 
>>512976
> Он тоже подсвечивается
Ещё светлее его сделай.
> цвет идентификаторов и текста в кавычках похож
Ярко голубой и фиолетовый. Ты либо толстишь так, либо и впрямь поезавший.
Аноним 11/07/15 Суб 18:37:01 #175 №512979 
14366290214900.png
>>512977
Так лучше? У тебя всего 3 цвета на чёрном фоне. Мог бы цвет в кавычках красным сделать для контраста.
Аноним 11/07/15 Суб 18:40:15 #176 №512981 
>>512979
> У тебя всего 3 цвета на чёрном фоне
Ты статью читал вообще?
> Мог бы цвет в кавычках красным сделать для контраста
Я не понимаю, он недостаточно контрастный для тебя? Сливается с фоном или что? Ты уже сетчатку себе спалил к хуям свой цветовой схемой, ничего не видишь.
Аноним 11/07/15 Суб 18:44:22 #177 №512982 
>>512940
>std::ios::binary
>Это обязательно?

Почему нет, если явно текст в файл не пишешь? Бинарный режим не нужен, если у тебя возможна ситуация, когда один чар может быть записан более чем одним байтом. Я не настаиваю (не эксперт), просто интересуюсь, какие возможны варианты.

>>512946
>Что я не так делаю?
Применяешь мой совет по быстрой записи больших массивов (но не больших, чем может записать ОС) к записи микроскопических данных.

Кто виноват? Не ты, а я, что дал глупый совет >>512936 записывать единичные int, double и небольшого размера std::string -- не подумал.

Почему этот совет подходит только для массивов среднего размера? Объясняю на пальцах: отключение буфера приводит к тому, что на каждый чих <fstream> обращается к жёсткому диску как только ему ОС предоставляет такую возможность физически. Если к жёсткому диску обращаться 100 000 раз ради нескольких байт, можно и жёсткий диск попортить при частом использовании твоей программы. Работать в любом случае будет медленно.

Что делать? Установить размер буфера равным (или делящимся нацело, если есть подозрения, что ОС не сожрёт записать такой объём за один раз) количеству итераций по записи значения * на его sizeof .

http://en.cppreference.com/w/cpp/io/basic_streambuf/pubsetbuf
http://www.cplusplus.com/reference/streambuf/streambuf/pubsetbuf/

Попробую переписать твой пример (напоминаю, что согласно стандарту char имеет вместимость 1 байт, что не факт что верно для bool, но это уже offtop):

>#include <fstream>
>#include <cstdio> //std::size_t
>#include <string>
>
>int main ()
>{
>    const std::size_t n = 100000;
>    char ofs_buffer[n];
>    std::ofstream ofs;
>    ofs.rdbuf()->pubsetbuf(ofs_buffer, n);
>    std::string str = "123456789012345678901234567890";
>    for (std::size_t i = 0; i < n; ++i) ofs << str;
>    return 0;
>}

Подразумевая, что сто килобайт сможет записать на диск любая ОС, и мы не сломаем твой жёсткий диск. Вот сейчас ты будешь иметь sizeof str обращений к жёсткому диску (в данном случае 30, если смотреть на мой код).

Вот теперь давай измерения времени сюда с и без строчки
>ofs.rdbuf()->pubsetbuf(ofs_buffer, n);
Аноним 11/07/15 Суб 18:49:37 #178 №512985 
>>512982
Можно ещё раз. Почему размер буффера не резмер строки, а количество обращение?
Аноним 11/07/15 Суб 18:52:36 #179 №512986 
>>512982
В примере на котором тестировал в первый раз было не 30, а 1000 символов в строке. Теперь результат от 30 до 40 мс. Это слишком мало чтобы сравнивать. Не слишком опасно сделать размер строки 1000 символов?
Аноним 11/07/15 Суб 18:58:05 #180 №512988 
>>512985
>Почему размер буффера не резмер строки, а количество обращение?
Ещё раз: ты хочешь 100 000 раз обращатсья к диску? Скорость запись на диск во много раз медленнее, чем работа с оперативной памятью.

>>512986
Лучше увеличь n в 100 раз. Всё равно задаётся константой в начале кода, а размер строки сделай символов 10-30, как удобно тебе. Жду 2 скриншота кода с и без выставления буфера результаты измерений в мс.
Аноним 11/07/15 Суб 19:04:56 #181 №512989 
14366306963570.png
>>512988
Спасибо. Получилось. С оптимизацией за 310мс. Без оптимизации 410 мс.
Аноним 11/07/15 Суб 19:08:39 #182 №512993 
>>512989
Хуже может быть, только если сделать фон каким-нибудь ядовито-зелёным, например, на мой взгляд.
Аноним 11/07/15 Суб 19:15:15 #183 №512999 
>>512988
Кажется понял. Вместо того чтобы выводить строку в файл он пишет его в буфер. А когда буфер в оперативной памяти заполниться он его выводит в файл. Тоесть чтобы к диску меньше раз обращаться надо увеличить буфер так чтобы в него влезло больше строк. А если размер строк очень большой, то буффер надо убрать и он сразу огромную строку выведет в файл не занося повторно в память. Всё правильно понял?
>>512993
Он дэфолтный. В настройках другой схемы нет. Самому пердолить желания нет. Может потом из интета скачаю красивую цветовую схему.
Аноним 11/07/15 Суб 19:20:18 #184 №513000 
>>512967
1. Там самые новые, которые я нашел. Т.е., допустим, если про шаблоны 96 года, то новых изданий не было, либо я долбился в глаза и не нашел их. В таком случае буду очень признателен, если ты покажешь, где есть что-то новее моих.
2. Это ты его сконвертировал, и он таким большим стал? В djvu же всего 50 МБ. Можно файнридером его распознать, ну или оставить djvu, мне кажется, новизна издания важнее удобства/размера.
3. Да можно вообще не писать, лол. Если там будут самые новые, анон откроет файл, и в нем уже указаны все подробности, на странице, где типографская инфа.
Аноним 11/07/15 Суб 19:23:25 #185 №513004 
>>513000
Вдогонку: ну я же вот открыл исходную djvu, там прямо на первой странице написано про 2003 год. Ты бы тогда брал эти даты из самих файлов, а не из интернетов, изданий-то много разных, некоторым уже по двадцать лет.
Аноним 11/07/15 Суб 19:27:15 #186 №513008 
>>513004
Еще вдогонку: я таки долблюсь в глаза и перепутал соседние файлы. У тебя все правильно, но таки ссылки на новые издания для выделенных реквестирую.
Аноним 11/07/15 Суб 19:34:02 #187 №513011 
>>512989
>Спасибо. Получилось. С оптимизацией за 310мс. Без оптимизации 410 мс.
Я ожидал большего. Впрочем, какая ОС, какой компилятор? Скажи, а я поделюсь своими наблюдениями про "без буфера массивы среднего размера".

>>512999
Всё правильно понял?
Да.

Небольшое дополнение: при отключённом буфере нужно не прошляпить момент, когда в общем-то любая ОС сможет записать твой массив за один раз. 4 мегабайта, полагаю, любая современная ОС может записать за 1 раз. Ну и не забывай про всяческие sizeof, чтобы не прострелить себе ногу, ведь стандарт строго регламентирует только sizeof(char) == 1.
Аноним 11/07/15 Суб 19:46:42 #188 №513018 
>>512550
Dev-c++ НАчинал и не жалею. Недавно скачал видимую студию и охуел от того сколько нужно манипуляций чтобы запилить халоворлд.
Аноним 11/07/15 Суб 19:47:41 #189 №513019 
>>512547
Да, ты охуенен, спасибо.
Надеюсь ты увидишь мой комент и тебе станет приятно лол
Аноним 11/07/15 Суб 21:14:44 #190 №513065 
14366384849870.png
14366384849881.png
>>513000

>1. Там самые новые, которые я нашел. Т.е., допустим, если про шаблоны 96 года, то новых изданий не было, либо я долбился в глаза и не нашел их. В таком случае буду очень признателен, если ты покажешь, где есть что-то новее моих.
А нет таких же книг, но поновее и другого автора?

>2. Это ты его сконвертировал, и он таким большим стал? В djvu же всего 50 МБ. Можно файнридером его распознать, ну или оставить djvu, мне кажется, новизна издания важнее удобства/размера.
Тоже в инете ничего не нашёл. Заливать не буду, а возьму ссылку из шапки.

>3. Да можно вообще не писать, лол. Если там будут самые новые, анон откроет файл, и в нем уже указаны все подробности, на странице, где типографская инфа.
Так проще неверно ориентироваться в файлах. Ладно это оставлю как есть.

>>513004
Брал данные не с первой странице, а английское издание как на первом пике.

>>513008
На втором пике не они? Те же книги на ту же тему, от тех же авторов, но поновее.
Аноним 11/07/15 Суб 21:36:58 #191 №513068 
14366398181790.png
14366398181801.png
>>513011
>Я ожидал большего.
Раньше >>511954 обычный fstream без оптимизации 320 выдавал, а fprintf 360. Во всех случаях выводил 100 МБ. Теперь только больше раз выводил меньшую строку.

>какая ОС, какой компилятор?
GCC с линуксом. screenfetch почему-то не работает.
Аноним 11/07/15 Суб 21:50:01 #192 №513075 
>>513065
>А нет таких же книг, но поновее и другого автора?
Ну, Мейерс это своеобразный гуру, в других книжках обычно более примитивные рекомендации даются. А тут что-то на уровне собрания статей из блога, как делать лучше всего. Энивей, подобные вещи не сильно устаревают, там же нет жесткой привязки к синтаксису, так что сойдет и 2000 год, думаю. Она больше не перевыпускалась, к сожалению, но у него вышла новая книга Effective Modern C++ я ее тоже залил в архив, правда она до сентября только на ангельском будет.
>На втором пике не они? Те же книги на ту же тему, от тех же авторов, но поновее.
Нет, другие. У Саттера и Мейерса они именно дополняют первые, рассказано то, что не вошло в предыдущие. Джоссатис и Вандевурд это тоже другая, но вот она таки немного устарела уже, шаблоны сильно обновили в новом стандарте. Можно ее не включать, думаю.
Аноним 11/07/15 Суб 21:59:59 #193 №513082 
14366411994640.png
>>513075
Заливать то что на пике? Теперь не могу, но сегодня начну. Завтра закончу. И одним постом отчитаюсь. Если ссылки через гугл сокращу лучше будет? Они же вечно работают?
Аноним 11/07/15 Суб 23:43:36 #194 №513176 
>>513068
>Раньше >>511954 обычный fstream без оптимизации 320 выдавал, а fprintf 360. Во всех случаях выводил 100 МБ. Теперь только больше раз выводил меньшую строку.

Вот теперь я вообще ничего не понял. Ты мне вот этот код >>512989 , его же с закомменченными 8 и 10 строкой, и сишную запись в файл. Хотелось бы увидеть три цифорки с миллисекундами.

>GCC с линуксом
А, ну ожидаемо, что ручной оптимизацией ты выиграл (410-310)/310 = 32%, это не так плохо. В винде-то всё ещё деревяннее.

Это я к тому, что в винде при записи средних и больших массивов при отключённом буфере делается всё с мало-мальски приличной скоростью, т.е. практически запись в файл перестаёт быть бутылочным горлышком. С дефолтным конструктором при записи больших и средних массивов скорость записи падает... пожалуй, в десятки раз.
Аноним 12/07/15 Вск 00:11:09 #195 №513184 
14366490692750.png
14366490692761.png
14366490692772.png
14366490692783.png
>>513082
>>513176
>с закомменченными 8 и 10 строкой
Забыл 8 закоментить. Теперь он 400 мс работает.

> и сишную запись в файл
Нет. Эти измерения делал раньше.

Провёл все измерения снова и получилось:
1. Без оптимизация пик 400 мс
2. Оптимизация буфером 310 мс
3. Вывод в стиле С с помощью .c_srt() 430 мс
4. Вывод в стиле С с помощью С-строки 410 мс
Аноним 12/07/15 Вск 00:14:49 #196 №513186 
14366492898600.png
>>513184
Может как-то не так проверяю? Делаю как на пике и смотрю на real.
Аноним 12/07/15 Вск 00:32:01 #197 №513196 
>>513184
Ну, в ходе твоих измерений выяснили, что fstream твёрдо быстрее си, хоть с оптимизациями, хоть без. У тебя же вроде была претензия изначально, что fstream медленнее работает, если я правильно понял?

>У них большая разница в скорости. Те кто fscanf писал сделали за 60 мс, а те что fstream за 150 мс. При чём алгоритм был примерно одинаковый.
Аноним 12/07/15 Вск 00:40:24 #198 №513201 
>>513196
Да. Сам не понял. Начальные измерения с чужих задач на кодфорсе. И те кто писали в стиле С делали быстрее. На кодфорсе надо делать вывод в стандартный поток, а он сам его в файл перенаправляет. Но при очной олимпиаде вывод надо делать в файл самому и комп будет на винде. К этому я и хотел подготовиться. Есть что почитать на эту тему оптимизация fstream с помощью регулирования размер буфера в интернете?
Аноним 12/07/15 Вск 01:50:34 #199 №513211 
>>513082
Да, вроде заебись. Прошу прощения за слоуответ.
Аноним 12/07/15 Вск 01:53:50 #200 №513212 
>>513211
Минут через 15 закончу заливать на dropbox ещё через 10 проверю и сокращу ссылки и через 5 вброшу в тред. Через полчаса всё будет.
Аноним 12/07/15 Вск 02:19:27 #201 №513216 
Вроде готово. Что ещё туда добавить?

https://goo.gl/e1V5BC Александреску - Современное проектирование на языке C++(2002)
https://goo.gl/HdELHy Джосаттис Н.М. - Стандартная библиотека C . Справочное руководство(2012)
https://goo.gl/uImH0J Мейерс - Effective Modern C++ (англ.)(2015)
https://goo.gl/tHa0tO Мейерс - Наиболее эффективное использование C++(1996)
https://goo.gl/wsDXGz Мейерс - Эффективное использование C++(2005)
https://goo.gl/QtS8Dc Мейерс - Эффективное использование STL(2002)
https://goo.gl/4nn512 Саттер - Новые сложные задачи на C++(2004)
https://goo.gl/iWaa6S Саттер - Решение сложных задач на C++(2002)
https://goo.gl/Cpk4YR Саттер, Александреску - Стандарты программирования на C++(2005)
https://goo.gl/FqbPwo Страуструп - Дизайн и эволюция C++(1994)
https://goo.gl/iZBDiV Страуструп - Язык программирования C++(2010)
https://goo.gl/qJfBkD Уильямс - Параллельное программирование на C++ в действии(2012)
Аноним 12/07/15 Вск 02:24:24 #202 №513218 
>>513216
Когда будешь в шапку заносить на всякий случай предупреди что если попросит регистрацию то надо закрыть окошко и нажать "скачать" снова.
Аноним 12/07/15 Вск 02:38:59 #203 №513220 
>>513216
>Джосаттис Н.М. - Стандартная библиотека C . Справочное руководство(2012)
Опечатка. Нужно С++. Там исправил. В шапке тоже поправь.
Аноним 12/07/15 Вск 08:54:36 #204 №513285 
Прогану нужно написать на чистом си прогу используя либу libpcaps, которая анализирует паекты согласно заданому требованию, например порт, айпи, мак. Нужно выводить в файл список всех маков пакетов, количество пакетов связаных с заданым маком. Список всех айпи пакетов, количество тисипи и юдипи.
Прога под никсы, с байндингом бод eth0.
Подскажите, с чего нечать. А то я только пол годна на плюсах, а в си полный ноль.
Аноним 12/07/15 Вск 09:18:31 #205 №513289 
14366819112960.png
Репостну вопрос из ньюфаг тренда, вдруг здешний анон знает:

"Кто-нибудь использует code::blocks?

Не могу понять как заставить окно Wathces появляться автоматически во время дебага. Т.е начинаю отладку и нужно каждый раз лезть debug->debuging windows -> wathces.

И еще не могу изменять в вотчах элементы массива, пик. Как тут программировать вобще. Хотел эту иде как замену Студии. "
Аноним 12/07/15 Вск 10:24:38 #206 №513297 
>>513285
http://yuba.stanford.edu/~casado/pcap/section1.html
Аноним 12/07/15 Вск 12:45:27 #207 №513319 
>>513201
>И те кто писали в стиле С делали быстрее. На кодфорсе надо делать вывод в стандартный поток, а он сам его в файл перенаправляет.
не вижу смысла обсуждать чёрный ящик.

>Но при очной олимпиаде вывод надо делать в файл самому и комп будет на винде. К этому я и хотел подготовиться.
Измерения ты провёл, решай сам.

>Есть что почитать на эту тему оптимизация fstream с помощью регулирования размер буфера в интернете?
Лучше почитай на тему винды, какой у неё максимальный и/или оптимальный по скорости буфер записи на жёсткий диск. Дальше сам знаешь что делать.
Аноним 12/07/15 Вск 13:12:23 #208 №513323 
Какие можете посоветовать книги жавакодеру? Нет смысла мне читать книги, в которых всё описывается с нуля.

>>513289
Я бы на твоём месте на CLion перекатился. Если она такая же как и идея - вообще годнота.
Аноним 12/07/15 Вск 14:31:20 #209 №513347 
>>513319
Спасибо. Очень твои ответы помогли.
Аноним 12/07/15 Вск 14:39:52 #210 №513350 
>>513347
Единственное что, если у тебя много свободного времени, разберись, как в сишечке отключается буфер / выставляется буфер и его размер. Там ведь абсолютно та же кухня (только, очевидно, без ООП), что и в iostream. Что будет быстрее, ну мне было бы очень интересно знать, просто времени и сил не так много.

Т.е. можешь провести дополнительные измерения с оптимизацией fprintf или что там в си, я не знаю. Если сделаешь -- можешь сюда написать, я читаю C++ треды (все остальные треды не читаю).
Аноним 12/07/15 Вск 14:41:13 #211 №513351 
>>513350
>Там ведь абсолютно та же кухня (только, очевидно, без ООП), что и в iostream.

fastfix: что и в <fstream>
Аноним 12/07/15 Вск 15:05:02 #212 №513358 
>>513216
Еще выше был кун, который просил впилить книгу Страуструпа для нюфагов, ее бы неплохо добавить к тем трем. Но у меня ее нет, нагуглил только какое-то говно в .chm.
Аноним 12/07/15 Вск 15:05:42 #213 №513359 
>>513220
Ссылка умерла.
Аноним 12/07/15 Вск 15:45:14 #214 №513368 
>>513359
https://goo.gl/PEyiMH Джосаттис Н.М. - Стандартная библиотека C++. Справочное руководство(2012)

>>513358
Нашёл в djvu уже конвертирую.
Аноним 12/07/15 Вск 16:09:35 #215 №513382 
https://goo.gl/87qXtW Страуструп - Программирование. Принципы и практика использования C++(2009)
Аноним 12/07/15 Вск 16:30:59 #216 №513395 
>>513350
Нашёл setvbuf и setbuf, но пока не понял их отличия. Также нашёл в описании это предложение.
> Буфер записывается на физическое устройство каждый раз, когда встречается символ новой строки
Заменил в строке вывода последний символ на \n, но результат почти без изменений. Также узнал что по умолчанию размер буфера для вводы/вывода в стиле С у меня 8192.
Аноним 12/07/15 Вск 16:55:36 #217 №513407 
14367093369790.png
14367093369801.png
>>513350

На первом пике 310 мс, а на втором 360. Как так ещё не понял. Первый пик выводит буфер в файл после заполнения, а второй пока не понял.
Аноним 12/07/15 Вск 17:06:47 #218 №513413 
>>513407
Лучшие результаты C и C++ одинаковые -- 310 мс. Тебе необходим замер на большие количества данных (например, чтобы писалось минуты), может там разница будет.

Если, конечно, ты уверен, что I/O будет самым узким бутылочным горлышком в твоей олимпиаде.
Аноним 12/07/15 Вск 17:11:58 #219 №513416 
>>513413
После рассказа об возможном повреждении HDD боюсь увеличивать размер файла. Если буду выводить в /dev/null результаты можно сравнивать?
Аноним 12/07/15 Вск 17:17:34 #220 №513419 
14367106546350.png
14367106546361.png
>>513416
Только что проверил. В обоих случаях 100 мс.
Аноним 12/07/15 Вск 17:19:20 #221 №513421 
>>513416
Ещё раз проясню: возможное повреждение HDD у тебя могло быть на этом этапе (цитирую тебя):

>512985
>Можно ещё раз. Почему размер буффера не резмер строки, а количество обращение?

Если же будешь писать крупными кусками (буфер намного больше, чем переменные. которые ты пишешь), ничего не станется. Фильмы ты не боишься на свой компьютер копировать?

>Если буду выводить в /dev/null результаты можно сравнивать?
Тебе нужно ставить физический эксперимент с записью на жёсткий диск. Ну ты понял.
Аноним 12/07/15 Вск 17:32:49 #222 №513424 
14367115699840.png
>>513421
Тоесть нужно увеличить n? Он выдаёт ошибку про сегментацию память или что-то в это роде.
Аноним 12/07/15 Вск 17:38:59 #223 №513428 
>>513424
Ну вот, видимо, экспериментально и подобрались к ограничению твоей сейчасшней ОС на максимальный буфер записи жёсткого диска.

Тогда делаешь так, как я говорил раньше: n оставляешь таким, чтоб не было segmentation fault, делаешь буфер, и вводишь дополнительную переменную m = n * 100; например, чтобы получить в 100 раз более долгий эксперимент по времени.

>for (... i < m; ...)

И так для фпринтфа и для фстрима.

P.S. Вангую отличие результатов не более чем на 5%.
Аноним 12/07/15 Вск 17:43:33 #224 №513432 
>>513419
Кстати, здесь на втором скрине, я так понял, обе строчки должны быть раскомменчены, раз результат очень быстрый.
Аноним 12/07/15 Вск 17:51:35 #225 №513436 
>>513432
Да. Это я не ту программу протестировал.
>>513428
Очень странно запускаю с 8382052 и всё работает примерно 10 сек. Второй раз запускаю и ошибка. Ничего страшного если n будет 8000000?

Теперь нужно чтобы количество циклов было больше размера буфера? Может в 10 раз будет достаточно, а то 1000 сек. Я не прожду.
Аноним 12/07/15 Вск 18:00:12 #226 №513442 
>>513436
>Очень странно запускаю с 8382052 и всё работает примерно 10 сек. Второй раз запускаю и ошибка. Ничего страшного если n будет 8000000?

Ну сделай вдвое меньше, я не знаю, 4000000. Это 4 мегабайта (4194304), как я и предлагал в самом начале:

>513011
>4 мегабайта, полагаю, любая современная ОС может записать за 1 раз

>Теперь нужно чтобы количество циклов было больше размера буфера?
Очевидно. Нам же неплохо бы посмотреть это на чуть более длительной записи.

>Может в 10 раз будет достаточно, а то 1000 сек. Я не прожду.
Ну сделай в 10 раз, почему уже такие тупые вопросы спрашиваешь? Вроде как на олимпиаду собираешься.

По-моему мнению, если расхождение будет на два-три процента в скорости, уже неважно чем пользоваться. Я люблю плюсы, поэтому в любой программе всегда у меня

>#include <iostream>
>#include <fstream>

А если есть #include <iostream> , то в целях скорости я уже никогда не использую сишный I/O, и поэтому всегда пишу в самом начале int main() {
>std::ios::sync_with_stdio(false);
...
}

вот об этом стоит помнить. А то люди проигрывали олимпиады из-за медленных std::cin / std::cout
Аноним 12/07/15 Вск 18:03:44 #227 №513444 
>>513442
> почему уже такие тупые вопросы спрашиваешь?
Чтобы быть уверенным что всё правильно делаю. Долго всё по много раз проверять.
Аноним 12/07/15 Вск 18:08:22 #228 №513447 
>>513444
>Долго всё по много раз проверять.
Здесь тебе так и так проверять придётся, ты лучше меня знаешь, какие объёмы данных тебе придётся писать.

Ну и вообще, про экстраполяцию слыхал?

И отчего жёсткий диск попортиться может, в конечном итоге понял или нет?
Аноним 12/07/15 Вск 18:11:42 #229 №513449 
>>513447
>про экстраполяцию слыхал?
Нет, но скоро посмотрю что это.

>>513447
>И отчего жёсткий диск попортиться может
От того что много раз меленькие объёмы данных записывать?

Проверил быстрые fstream средняя скорость 1 мин. 18 сек.
Аноним 12/07/15 Вск 18:17:09 #230 №513451 
14367142292870.png
>>513449
Забыл добавить что 8 гигов буфером в 8 магабайт строку из 100 символов 80000000 раз выводил.
Аноним 12/07/15 Вск 18:28:48 #231 №513457 
14367149289870.png
Вывод в стиле С 1 мин. 20 сек.
Аноним 12/07/15 Вск 18:34:10 #232 №513464 
>>513449
>От того что много раз меленькие объёмы данных записывать?
Ну да, по-моему предположению, из-за частых циклов записи (да и чтения тоже) просто уменьшается его время жизни. Но лучше пускай знатоки железа выскажутся.

>Проверил быстрые fstream средняя скорость 1 мин. 18 сек.
>Забыл добавить что 8 гигов буфером в 8 магабайт строку из 100 символов 80000000 раз выводил.

Сравнение с сишечкой давай при тех же параметрах.
Аноним 12/07/15 Вск 18:36:36 #233 №513466 
>>513464
Параметры те же. Разница пара процентов. >>513457
Аноним 12/07/15 Вск 18:40:17 #234 №513467 
>>513466
Кресты победили!

Расхождение менее 5%, как я и предсказывал. Ну решай сам, что тебе больше по душе. С учётом >>513442 , если выберешь C++ .
Аноним 12/07/15 Вск 18:42:38 #235 №513468 
>>513467
Со string удобнее работать проще. Думаю теперь проведу ещё пару тестов с другими типами. Где искать советы по оптимизации программы без изменения её алгоритма?
Аноним 12/07/15 Вск 18:56:12 #236 №513471 
>>513468
>Со string удобнее работать проще. Думаю теперь проведу ещё пару тестов с другими типами.

Можешь влететь по производительности, если не будешь делать с reinterpret_cast<const char> и низкоуровневой функцией записи ofs.write(arr, arr_streamsize);

подробно я описал тут:
>512797 >512803 (быстрее этого уже не будет ничего):

>std::ofstream ofs; //only writing
>ofs.rdbuf()->pubsetbuf(0, 0); //both zeros to disable buffer
>ofs.open(filename, std::ios::binary); //std::string filename

>for (std::size_t i = 0; i < n; ++i)
>{
>    fill_array(any_type_array, i);
>    ofs.write(reinterpret_cast<const char
>(any_type_array), array_size); //std::streamsize array_size
>}

std::streamsize -- это знаковый аналог std::size_t , в него легко кастовать статик_кастом

Кстати, почему в своих программах ты нигде не используешь std::size_t для индексов и разметки памяти? Стандарт, как-никак.
Аноним 12/07/15 Вск 18:57:11 #237 №513473 
>>513471
Пидорашенная разметка. Ну ты понял, где начинается курсив, там первая * , где заканчивается курсив, там вторая.
Аноним 12/07/15 Вск 19:00:26 #238 №513474 
>>513471
Я не понимать. Что это? Что оно должно делать?
Аноним 12/07/15 Вск 19:03:49 #239 №513475 
>>513474
Английский нормально знаешь?
Аноним 12/07/15 Вск 19:05:23 #240 №513476 
>>513475
Нет.
Аноним 12/07/15 Вск 19:06:58 #241 №513477 
Насколько вообще востребовано знание платформы .Net Framework на рынке труда?

Есть ли смысл учить .Net зная лишь С++/CLI?

Обязательно ли учить С#?
Аноним 12/07/15 Вск 19:21:52 #242 №513482 
>>513476
Тогда выписываешься из своей маленькой хрущёвки и поселяешься на http://ru.cppreference.com/w/

Параллельно учишь английский, потому что база статей на русском там весьма неполна (почти все машинный перевод) и, кроме того, частенько на http:://www.cplusplus.com , хоть это и не официальный сайт, бывают более адекватные, полные и более ясные для понимания примеры.

начни-ка с http://ru.cppreference.com/w/cpp/io/basic_ostream/write

Хотя при полном незнании английского языка я бы всё равно предпочёл
http://www.cplusplus.com/reference/ostream/ostream/write/?kw=write

НЕ ЗАБЫВАЙ ПЕРЕКЛЮЧАТЬСЯ НА ВКЛАДКУ C++11 , по умолчанию не она

Но моим примеры более понятные для понимания. Что такое reinterpret_cast <const char*>? Это указание компилятору, чтобы он думал, что там массив типа char, так ещё и указание конст чтоб не менять его. Обманываем компилятор и правильно делаем, ради скорости.
Аноним 12/07/15 Вск 19:32:08 #243 №513484 
>>513477
В чем вопрос то?
.net без сишарпа есть, но его мало.
Учить вообще ничего не надо, работать надо.
Аноним 12/07/15 Вск 19:36:51 #244 №513486 
14367190110790.png
14367190110801.png
14367190110802.png
14367190110813.png
1. long 95 мегабайт 1 250 мс. fstream
2. float 55 мегабайт 9 780 мс. fstream
3. long 95 мегабайт 1 650 мс. fprintf
4. float 46 мегабайт 4 230 мс. fprintf

>>513482
>НЕ ЗАБЫВАЙ ПЕРЕКЛЮЧАТЬСЯ НА ВКЛАДКУ C++11 , по умолчанию не она
А как включить? И как проверить или включён?
Аноним 12/07/15 Вск 19:57:24 #245 №513497 
14367202446220.png
>>513486
>А как включить? И как проверить или включён?
См. приложенный пик.

>1. long 95 мегабайт 1 250 мс. fstream 2. float 55 мегабайт 9 780 мс. fstream
>3. long 95 мегабайт 1 650 мс. fprintf 4. float 46 мегабайт 4 230 мс. fprintf
Ну, собственно, о чём я и предполагал >>513471 ещё до твоих измерений: при работе НЕ с чарами fstream ожидаемо проигрывает.

Поэтому нужно использовать непосредственно низкоуровневую функцию std::ostream::write() с враньём компилятору при помощи reinterpret_cast<const char *>, что мы пишем чары, а на деле пишем какой-то другой массив или даём ссылку на переменную.
Аноним 12/07/15 Вск 19:59:50 #246 №513498 
>>513497
Хотя именно лонг оказался быстрее. Видимо, зашили реинтерпрет_каст в переопределённый оператор << для лонгов.
Аноним 12/07/15 Вск 20:05:53 #247 №513499 
>>513497
>См. приложенный пик.
А, ты пр ту ссылку. Думал что ты про компилятор.>>513497
>что мы пишем чары, а на деле пишем какой-то другой массив или даём ссылку на переменную.
Если там будет к примеру 2 байта unsigned short(12), а мы скажем что там чар. То он вместо "12" выведет 2 байта преобразовав их в чар. Тоесть char(0) и char(12). Разве нет? Не в интернет статья по этой теме?
Аноним 12/07/15 Вск 20:29:00 #248 №513505 
>>513499
В интернет нешёл что пишут у прата про это хорошо поясняется. Это так? Стоит отрывок из его книги читать?
Аноним 12/07/15 Вск 20:46:34 #249 №513514 
>>513499
>Думал что ты про компилятор.
Компилятор у тебя просто последней версии должен быть, тогда всё в порядке с C++11.

Так, последние два сообщения я уже не уверен, устал. >>513497 >>513498 (вот эти)

По поводу ансигнед шорт. Если тебе нужно записать её n раз, тогда будет так (@ везде замени на *):

>#include <fstream>
>#include <cstdio> //std::size_t
>
>int main ()
>{
>    const std::size_t n = 100000, n_size = n @ sizeof(unsigned short);
>    char ofs_buffer[n_size];
>    std::ofstream ofs;
>    ofs.rdbuf()->pubsetbuf(ofs_buffer, n_size);
>    unsigned short twelve = 12;
>    std::streamsize var_streamsize = static_cast<std::streamsize>(sizeof(unsigned short));
>
>    for (std::size_t i = 0; i < n; ++i)
>        ofs.write(reinterpret_cast<const char@>(&twelve), var_streamsize);
>
>    return 0;
>}

Т.е. в буфер она запишется n раз, а на жёсткий диск всё вместе запишется 1 раз. Обрати внимание, что в реинтерпрет_каст я скармливаю &twelve, т.е. ссылку (грубо -- адрес переменной, т.е. подаю её как массив якобы чаров длиной 2 элемента чара).
Аноним 12/07/15 Вск 21:00:45 #250 №513517 
14367240452130.png
>>513514
Почему не используешь скрипт для [CODE]?
И всё же я не понимаю. Ведь переменные разных типов хранятся в память по разному. Откуда он знает как их переводить в другой тип? И ещё. Программа с примера в файл записывает байты, а не символы.
Аноним 12/07/15 Вск 21:04:04 #251 №513520 
>>513484

>>Учить вообще ничего не надо, работать надо.

Не траль, плиз.
Аноним 12/07/15 Вск 21:05:39 #252 №513522 
>>513514
Что такое streamsize?
Аноним 12/07/15 Вск 21:25:27 #253 №513527 
>>513517
Скрипт не использую, потому что смотри соседний тред про Столярова Андрея Викторовича у меня помирающий компьютер, ещё не хватало навешивать всяческие плагины на браузер. Я вообще сторонник веб 1.0.

>Откуда он знает как их переводить в другой тип?
Он их не переводит в другой тип, он подряд расположенные байты в памяти воспринимает как другой тип. Реинтерпрет_каст на этапе выполнения кода ~почти всегда является бесплатной операцией.

Константу я навесил чтобы подчеркнуть read-only характер действия в отношении памяти.

>>513522
>Что такое streamsize?
Я кому ссылку на вики дал?

http://ru.cppreference.com/w/cpp/io/streamsize
http://www.cplusplus.com/reference/ios/streamsize/

Стримсайз -- это размер в байтах того, что пишешь за один раз с помощью write() . Знаковый тип, обращаю внимание, поэтому не std::size_t
Аноним 12/07/15 Вск 21:37:16 #254 №513529 
>>513527
>Он их не переводит в другой тип, он подряд расположенные байты в памяти воспринимает как другой тип. Реинтерпрет_каст на этапе выполнения кода ~почти всегда является бесплатной операцией.
Значит он полезен только при выводе string? Ведь другие типы совсем не так представляются в памяти как массив char. Значит другие типы никак не ускорить?

>Я кому ссылку на вики дал?
Там по предложения про это. По чему отдельный тип? Почему не int?
Аноним 12/07/15 Вск 21:51:04 #255 №513531 
>>513529
>другие типы совсем не так представляются в памяти как массив char
Структуры так представляются, например.
Аноним 12/07/15 Вск 21:52:49 #256 №513533 
>>513531
А как это поможет с их правильным и быстрым выводом?
Аноним 12/07/15 Вск 21:54:06 #257 №513534 
>>513529
>Ведь другие типы совсем не так представляются в памяти
Другие типы в оперативной памяти лежат в количестве sizeof(T) байт, а представляет их себе уже компилятор с помощью дополнительной информации о типе. Когда ты говоришь компилятору реинтерпретировать их, он забивает на информацию об их типе и реинтерпретирует их так, как ты скажешь. Главное, чтобы размер T и размер реинтерпретируемого совпадали, иначе КРОВЬ КИШКИ ГОВНО ПО СТЕНАМ.

>Значит другие типы никак не ускорить?
Я >>513514 тебе n раз unsigned short записал, вообще-то. Ты издеваешься или что?

>По чему отдельный тип? Почему не int?
int это самый быстрый целочисленный тип на твоей платформе. Обычно 32 бита (долго объяснять, это фишка x86-64), ранее 16 бит.

std::size_t и std::streamsize это максимальные по разрядности типы (соответственно unsigned и signed) на твоей платформе. Т.е. 64 бита на 64-разрядном процессоре (кроссплатформенные определения типов).

Вне зависимости от разрядности процессора именно эти типы используют для индексации и разметки памяти (std::size_t) и для *stream библиотек (std::streamsize).
Аноним 12/07/15 Вск 21:56:20 #258 №513535 
>>513533
Выводом куда именно? Если в файлы, то по легенде, M$ Word их так прямо в файлы и бросал.
ulong rc = write (файл, смещение, структура, sizeof (тип));

Аноним 12/07/15 Вск 22:01:26 #259 №513537 
>>513534
> тебе n раз unsigned short записал
Я не не предупредил думал что это и так понятно нужно не в бинарном виде или как эта правильно называется, а в виде символов. Так чтобы можно было открыть блокното7м и увидеть "12". Тоесть чтобы это сделать нужно знать как тип храниться в памяти и самом преобразовывать его к char?
Аноним 12/07/15 Вск 22:26:16 #260 №513547 
>>513537
тогда:

1) исправь
>ofs.open(filename, std::ios::binary); //std::string filename
на
>ofs.open(filename); //std::string filename
чтобы НЕ открывало в бинарном режиме;

2) не забывай о разделителе -- char delimiter -- ты же должен разделять данные пробелом, например;

3) размер буфера не нужно подгадывать чтоб был кратным количеству записей, если неизвестно, что данные одинаковые;

4) используй << в цикле for

P.S. Будет медленно в любом случае по сравнению с бинарным, но доверь
>преобразовывать его к char
стандартной библиотеке, она сделает это лучше тебя.
Аноним 12/07/15 Вск 22:35:28 #261 №513554 
>>513547
ну и да, надеюсь ты понимаешь, что размер буфера всё равно должен быть достаточно большим, чтобы выгружать записи на жёсткий диск реже, но бОльшими порциями
Аноним 12/07/15 Вск 22:37:27 #262 №513557 
>>513547
Тоесть просто сделать буффер и не как не преобразовывать выходные данные? Как тут >>513486? А строку выводить Как в твоём примере?
Аноним 12/07/15 Вск 22:48:48 #263 №513567 
>>513557
Я понять не могу, ты издеваешься или что? Я пошагово тут >>513547 всё расписал.

>А строку выводить Как в твоём примере?
Возьми строку "abc", два раза запиши её в файл.

Если файл будет 6 байт, значит, делимитером надо ставить char delimiter = '\0'; (т.н. null-char, который обозначает окончание строки).

Если файл будет больше 6 байт, там автоматически проставится '\0'. Но так не будет, мне кажется.
Аноним 12/07/15 Вск 22:54:26 #264 №513576 
>>513567
Ты видимо уже устал пояснять. Спасибо. Всё что не понял перечитаю заново и нагуглю. Ещё раз спасибо.
Аноним 13/07/15 Пнд 02:24:19 #265 №513652 
>>511955
>Неужели до сих пор вручную все кодят заголовки
не, зачем, автоматизация этого - одна из базовых опций любого рефакторного плагина любой ide
Аноним 13/07/15 Пнд 02:30:42 #266 №513653 
>>511337
>записать в него любые байты, например, те, из которых состоит функция
в машкодах вообще то должна быть функция уже
Аноним 13/07/15 Пнд 15:32:42 #267 №513941 
>>513653
Она будет записана в сегменте кода, а нужен сегмент данных.
Аноним 13/07/15 Пнд 18:31:00 #268 №514020 
Крестопетухи должны страдать.
Аноним 13/07/15 Пнд 20:08:13 #269 №514059 
Есть знатоки QT, нужна помощь.
sageАноним 13/07/15 Пнд 20:53:27 #270 №514084 
>>514059
Есть, но тебе, хуесосу, не помогу.
Аноним 13/07/15 Пнд 20:59:44 #271 №514091 
>>514084
А зачем отписался?
sageАноним 13/07/15 Пнд 21:12:54 #272 №514099 
>>514091
Чтобы ты спросил.
Аноним 13/07/15 Пнд 21:18:46 #273 №514102 
>>514099
Ясно.
Аноним 13/07/15 Пнд 21:39:19 #274 №514118 
Керниган и Ритчи же норм книга? браток подогнал. Хочу перед вузиком хоть чему-то обучиться, чтобы не обосраться.
Аноним 13/07/15 Пнд 22:13:50 #275 №514130 
>>514118
Если перед вузиком то норм. Книга хорошая но она старая, и там не плюсы же.
Аноним 13/07/15 Пнд 23:23:50 #276 №514162 
Ньюфаг вкатывается к крестогосподам. Есть два реквеста:
1) Посоветуйте годную литературу по Qt. Или исключительно Qt Documentation курить?
2) В одном из прошлых тредов анон выкладывал со своими пояснениями список литературы и каналы на ютубе, там ещё помечал их типа LEVEL 1, LEVEL 3 и т.д. Может схоронил кто-нибудь?
Аноним 13/07/15 Пнд 23:39:18 #277 №514172 
>>514162
Аноним 13/07/15 Пнд 23:39:38 #278 №514173 
>>514162

PS. Половину этого я тестил, другую половину собирал по рекомендациям.
=====================================================
Books:
[LEVEL1] http://www.math.spbu.ru/user/dlebedin/cpp1.pdf – методичка по VS 2010 C++ СПбГУ. (чтобы перейти к следующей части методички изменить цифру после cpp)
[LEVEL1] http://aco.ifmo.ru/el_books/applied_programming/ - конспекты ИТМО
[LEVEL1] http://www.ozon.ru/context/detail/id/31315281/ - Страуструп
[LEVEL1] http://www.ozon.ru/context/detail/id/5410595/ - Лафоре ООП в С++
[LEVEL1] http://www.ozon.ru/context/detail/id/1498452/ - Шилдт справочник по С++
[LEVEL3] http://www.ozon.ru/context/detail/id/31619787/ - Qt программирование
[LEVEL3] http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd/dp/020189551X/ref=sr_1_1?s=books&ie=UTF8&qid=1431380343&sr=1-1 – ООП Гради Буча
Courses:
[LEVEL1] http://ru.yasno.tv/course/details/programming-start – Введение в язык
[LEVEL1] http://loftblog.ru/category/courses/osnovy-oop-na-s/ – Основы ООП С++
[LEVEL3] https://ru.coursera.org/instructor/~214 – Алгоритмы на C++
[LEVEL1] https://stepic.org/users/31 и https://www.lektorium.tv/speaker/2941 – Курсы Александра Смаля
[LEVEL1] https://stepic.org/users/12 и https://www.lektorium.tv/speaker/2678 – Курсы Александра Куликова
[LEVEL2] https://www.edx.org/bio/deepak-b-phatak – Курсы C++ программирования (минимум C++)
[LEVEL1] http://www.amse.ru/courses/cpp2/ - АСП по C++
=====================================================
YouTube channels:
[LEVEL1] http://www.youtube.com/playlist?list=PL2F919ADECA5E39A6 – С++ с основ
[LEVEL2] http://www.youtube.com/playlist?list=PL2D1942A4688E9D63 – C++ Qt с основ
[LEVEL3] http://www.youtube.com/view_play_list?p=9D558D49CA734A02 – Стэнфордские лекции по программированию (не только C++)
=====================================================
Sites:
[LEVEL1] http://acmp.ru/index.asp?main=tasks – Онлайн контестер с легкими задачами
[LEVEL2] http://www.boost.org/ - Boost библиотеки
[LEVEL2] http://www.amazon.com/gp/bestsellers/books/9045760011/ref=zg_b_bs_9045760011_1 – Популярные книги по C++
[LEVEL1] http://hyperpolyglot.org/ - Сравнивание языков программирования (быстрый переход с другого языка)
[LEVEL1] http://www.cplusplus.com/reference/ - Справочник по всем стандартным библиотекам C++ (можно просто вбивать в поиск запросы)
[LEVEL1] http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 – Конспекты ИТМО
[LEVEL1] https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx – MSDN справочник по C++
[LEVEL1] http://stackoverflow.com/questions/tagged/c%2b%2b или http://ru.stackoverflow.com/questions/tagged/c%2b%2b – задаем вопросы по С++
=====================================================
Contests and algorithms:
[LEVEL1] http://acm.timus.ru/ - Архив задач для решения и редкие контесты
[LEVEL2] http://www.spoj.com/ - Архив задач на английском
[LEVEL3] http://www.sanfoundry.com/1000-cpp-algorithms-problems-programming-examples/ - алгоритмы и приемы на C++
[LEVEL2] http://algolist.manual.ru/ - Описание известных алгоритмов (устарел)
[LEVEL2] http://codeforces.com/ - Контесты + новости о больших контестах
[LEVEL2] http://www.topcoder.com/community/events/ - Еще одни контесты
[LEVEL3] https://www.hackerrank.com/calendar – расписание известных контестов
[LEVEL3] https://contest.yandex.ru/contest-list/ – контесты от Яндекса
[LEVEL3] http://cups.mail.ru// – Mail.ru cups (не только спортивное программирование)
[LEVEL4] https://code.google.com/codejam – контесты от google
[LEVEL4] http://icpc.baylor.edu/worldfinals/problems – задачи финалов чемпионата мира по программированию
=====================================================
Forums:
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
http://www.cplusplus.com/forum/
http://www.qtcentre.org/forum.php
https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=c%2B%2B+forum – другие запросы гугла

Забыл http://e-maxx.ru/algo/




Использовать сверху вниз.
https://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs или http://www.youtube.com/playlist?list=PL2F919ADECA5E39A6 или https://tech-mail.ru/materials/video/
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
http://www.ozon.ru/context/detail/id/5410595/
http://hyperpolyglot.org/cpp

Затем ответвление в софт или спортивное программирование.

Софт:
http://www.amazon.com/Professional-C-Marc-Gregoire/dp/1118858050/ref=sr_1_2?s=books&ie=UTF8&qid=1431362511&sr=1-2&keywords=professional+programming+c%2B%2B
http://www.amazon.com/Game-Programming-All-Jonathan-Harbour/dp/1598632892/ref=sr_1_1?s=books&ie=UTF8&qid=1431362593&sr=1-1&keywords=game+programming+all+in+one
https://youtube.com/devicesupport

Спорт:
http://e-maxx.ru/algo/
Дасгупт, Кормен, Орлов, Техносфера.
http://codeforces.com/
http://www.topcoder.com/
Аноним 13/07/15 Пнд 23:40:30 #279 №514177 
>>514173
Тут отфильтровал то что на русском.

http://ru.yasno.tv/course/details/programming-start
http://loftblog.ru/category/courses/osnovy-oop-na-s/
https://stepic.org/users/31
https://www.lektorium.tv/speaker/2941
https://stepic.org/users/12
https://www.lektorium.tv/speaker/2678
http://www.amse.ru/courses/cpp2/
http://acmp.ru/index.asp?main=tasks
http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx
http://ru.stackoverflow.com/questions/tagged/c%2b%2b
http://acm.timus.ru/
http://algolist.manual.ru/
http://codeforces.com/
https://contest.yandex.ru/contest-list/?ncrnd=5199
http://cups.mail.ru//
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
https://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs
https://tech-mail.ru/materials/video/
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
http://e-maxx.ru/algo/
Аноним 13/07/15 Пнд 23:48:30 #280 №514188 
>>514173
>>514177
Добра тебе. Пусть всё у тебя будет хорошо.
Аноним 14/07/15 Втр 01:53:43 #281 №514233 
>>512595
Нет. Стандарт этого не гарантирует.
Аноним 14/07/15 Втр 06:47:22 #282 №514255 DELETED
Анон,
я инженер-механик, меня заебало нищебродствовать, хочу программировать.
В свободное время читаю документацию по с++, а также Лафоре - уже полкниги прошел, охуенная, я все с первого раза въебал. Как для дебилов объясняет.
Вопрос - стоит писать и проверять на Ideon, или все-таки установить IDE? Какой? Я где-то видел рекомендовали CodeBlocks, но к нему еще компиляторы нужны, ХЗ.
Аноним 14/07/15 Втр 08:37:44 #283 №514269 
[code lang="c++"]int x = 0;[/code]

Проба
Аноним 14/07/15 Втр 08:42:45 #284 №514271 
[code lang="c++"]int x = 0;[/code]

Проба2
Аноним 14/07/15 Втр 08:43:14 #285 №514272 
[CODE]int x = 0;[/CODE]
Аноним 14/07/15 Втр 10:54:45 #286 №514311 
14368604853510.jpg
Антоны, привет. Я, конечно, понимаю, что лабы идут нахуй, но здесь вопрос, скорее, в другом. Есть годный пак заданий для С++? Буду благодарен, если ткнёте носом.
sageАноним 14/07/15 Втр 12:23:33 #287 №514339 
>>514311
Борду напиши. Мне нужна конкуренция.
Аноним 14/07/15 Втр 14:33:26 #288 №514385 
>>514255
Компиляторы идут вместе с иде. А вообще, лучше ставь visual studio.
Аноним 14/07/15 Втр 14:48:57 #289 №514393 
>>514385
Но у меня Linux.
Аноним 14/07/15 Втр 14:57:25 #290 №514400 
>>514393
Qt creator. Необязательно на куте писать даже
Аноним 14/07/15 Втр 15:24:32 #291 №514424 DELETED
>>514385
Спасибо, добра тебе.
А visual studio еще жив лол. Качать express или community? Или похуй?
Аноним 14/07/15 Втр 15:53:30 #292 №514442 DELETED
>>514255
Не скачивай codeblocks-13.12-setup.exe
Скачивай codeblocks-13.12mingw-setup.exe
Там есть компилятор, не надо изъебываться.
Аноним 14/07/15 Втр 17:01:24 #293 №514484 
>>514424
Не похуй. Community.
Аноним 14/07/15 Втр 17:08:09 #294 №514488 DELETED
Анон, что за пиздота?
Почему не выводится русский?
Сперма 7, стоит codeblocks, c++.
Использую mingw gcc.
Аноним 14/07/15 Втр 18:16:44 #295 №514516 
>>514488
Потому что сперма.
Аноним 14/07/15 Втр 19:27:44 #296 №514554 
>>514488
Локаль подключи
Аноним 14/07/15 Втр 20:49:54 #297 №514611 
14368961945410.jpg
>>514339
Абу, ты?
Аноним 14/07/15 Втр 21:10:32 #298 №514635 
>>511337
А такое возможно на уровне пхп? Там же тоже можно тело функции в base64 зашифровать, в массив положить, а потом запустить.
Аноним 14/07/15 Втр 21:39:07 #299 №514648 
>>514488
Посмотри настройки консоли.
100% кодировка не та стоит.
sageАноним 15/07/15 Срд 16:45:04 #300 №515040 
14369679046830.png
>>514611
Нет, у меня получше сосача будет. Только для мобилок дизигн просасывает. А так почти все функции куклы есть искаропки (спеллы в том числе), кроме совсем бессмысленных (ну типа там пробел после > вставлять при цитировании).
Еще это говно без учета скорости передачи (на локалхосте тестил) держит до 70к постов без картинок в час, или до 30к с картинками, или до 20к тредов.
Есть минималистичный режим, где не используются скрипты, но многие функции работают (такие как добавление файла к посту или редактирование поста (который отмечен как черновик и пока что другим посетителям не виден)).
Тег code, опять же, поддерживается без костылей. Ссылки на посты с других досок.
Есть и уникальные фичи (сомнительной полезности, но все же). Все описывать лениво. В общем, без лишней скромности, движок збс получился, мне нраица. Народу только нет, потому как агрессивно спамить-пиарить совесть не позволяет (и лень тоже).
Аноним 15/07/15 Срд 18:05:10 #301 №515097 
Эй анон, что ты скажешь про движок UDK4 с его крестами?

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

И как вообще, легко будет жабабляди пересесть на плюсы организовав по этому поводу вменяемо архитектуру стратегии с непрямым управлением?

Алсо, что скажешь о поиске пути? Именно по этой причине были выбраны плюсы. Советуй, анон.
Аноним 15/07/15 Срд 23:49:49 #302 №515250 
Сап, погромисты. Вот думаю посмотреть, попробовать сделать что-нибудь на wxWidgets. Стоит вообще или лучше сразу на Qt?
sageАноним 16/07/15 Чтв 05:49:23 #303 №515324 
Лучше сразу на хуй.
Аноним 16/07/15 Чтв 07:39:44 #304 №515334 
>>515250
Попробуй, сделай. wxWidgets -весьма неплохая штука, лично для меня вполне удобная.
Однако, делать что-либо на Милашке, как мне кажется, быстрее и проще.
Аноним 16/07/15 Чтв 13:00:31 #305 №515399 
Анон, направь меня на путь истинный! Я хочу обмазаться сетевым программированием, и у меня возникла пара вопросов:

1. Какие есть библиотеки, и стоит-ли их использовать? Я посмотрел на программирование уровня сокетов и не нашел там чего-то очень сложного, а библиотека типа boost.asio, на первый взгляд показалась мне более запутанной.

2. В чем смысл использования асинхронных сокетов в винде, если я могу запустить синхронный в отдельном потоке?
Аноним 16/07/15 Чтв 13:32:26 #306 №515409 
>>515334
> на Милашке
На чем?
Аноним 16/07/15 Чтв 13:39:09 #307 №515413 
>>515409
Игра слов: QT - [КьюТи].
Cutie - [кьюти] - милашка
sageАноним 16/07/15 Чтв 13:43:37 #308 №515418 
>>515399
>Какие есть библиотеки, и стоит-ли их использовать?
Разные, некоторые - да, некоторые - нет. Я только boost::asio использовал
>первый взгляд показалась мне более запутанной.
Ну, есть немного, но мне норм.
> В чем смысл использования асинхронных сокетов в винде, если я могу запустить синхронный в отдельном потоке?
В том что асинхронные не требуют целый поток на одного клиента.
Аноним 16/07/15 Чтв 13:44:29 #309 №515419 
>>515413
а ок
Аноним 16/07/15 Чтв 13:51:11 #310 №515424 
>>515418
А в чем преимущество asio, кроме мультиплатформенности? Я посмотрел, интерфейс сокетов в винде и никсах похожий, написать к ним универсальное междумордие можно довольно быстро.
Аноним 16/07/15 Чтв 16:06:19 #311 №515491 
Ананасы, вот у меня вопрос такой.
Иногда где-то в примерах натыкаюсь на такие вещи, а именно делают шаблонные структуры, но без каких-либо функций или переменных в них. Ну то есть просто пустая структура.
Ещё замечал, что это делается для метапрограммирования.
Можно какой-то краткий пример для объяснения?
Аноним 16/07/15 Чтв 17:10:05 #312 №515542 
>>515491

> Андрей Александреску - Современное проектирование на C++ - http://www.proklondike.com/var/file/C/Andrei_Alexandrescu_-_Sovremennoe_Proectirovanier_CPP.rar

Наверни вот это. Там этих примеров, тысячи их.
Аноним 16/07/15 Чтв 17:58:35 #313 №515565 
>>515542
Проще было бы найти в гугле чем в этом говне мамонта.
Аноним 16/07/15 Чтв 18:00:40 #314 №515569 
>>515565
+
Я тоже не понимаю, почему его все советуют.
Аноним 16/07/15 Чтв 18:16:43 #315 №515579 
>>515040
Сделай предпросмотр постов.
Аноним 16/07/15 Чтв 19:07:53 #316 №515630 
>>515491
Пустые структуры часто используют как тег, пустой тип. Такие типы запрещают implicit casting. Гугли tag dispatching.
sageАноним 16/07/15 Чтв 19:13:03 #317 №515631 
>>515424
>А в чем преимущество asio, кроме мультиплатформенности?
Готовая, хорошая либа использующяя идеоматический с++.

>>515424
>Я посмотрел, интерфейс сокетов в винде и никсах похожий, написать к ним универсальное междумордие можно довольно быстро.
Ну так напиши, жалко что-ли.
Аноним 16/07/15 Чтв 19:55:05 #318 №515650 
Что делают С++ программисты на работе? Смотрю hh.ru и там много QT разработчиков программ и игр. И не очень много программистов по iOS/Android. Много кстати на линукс. Неужели они так востребованы? Какая мне светит работа после того как кресты выучу?
Аноним 16/07/15 Чтв 19:57:50 #319 №515652 
>>515650
>умение писать простейшие модули ядра
Что кстати за умение? Как его получить?
Аноним 16/07/15 Чтв 20:04:51 #320 №515658 
Архитектурный вопрос, плюсаны.

Пилю тайловую систему к игрушке. Подразумевается, что в ней будет скриптовое описание всех новых тайлов, чтобы можно было без проблем добавить новый, не перекомпиляя. Для этого я сделал абстрактный класс Tile, от которого будут наследоваться все остальные.

Сейчас я пилю генератор ландшафта, и у меня возникла проблема с тем, как он будет понимать, какой именно тайл ему сгенерить. Например, можно в каждом тайле сделать запись с его типом. Но нужно сгенерить не просто тайл, а экземпляр субкласса Tile.

Как вообще реализуют подобные вещи? Тот же Майнкрафт как-то это делает...
sageАноним 16/07/15 Чтв 20:16:44 #321 №515664 
14370670045120.png
>>515579
Ты про пикрелейтед?
Аноним 16/07/15 Чтв 20:18:45 #322 №515667 
>>515664
Нет. Чтобы посмотреть свой пост перед подправкой и потом не редактировать если с разметкой проебался.
Аноним 16/07/15 Чтв 20:21:36 #323 №515668 
>>515658
Фабрика же. У фабрики статический метод который принимает параметром тип нужного тайла (название тайла, или номер), создает и возвращает его. При добавлении нового тайла тебе нужно будет скомпилить класс этого тайла и фабрику. Соответвенно пересобрать все с новыми файлами. Поэтому не совсем понятно что именно ты имеешь ввиду под "не перекомпиляя". Если тебе нужно добавление новых типов тайлов вообще без перекомпиляции, только путем изменения каких=то конфигов/скриптов то твоя архитектура не подойдет. Под тайл нужен один класс, наследование не подойдет.
sageАноним 16/07/15 Чтв 20:28:33 #324 №515671 
14370677133480.png
14370677133491.png
14370677133522.png
>>515667
Есть. Система черновиков. Ставишь галку при отправке, пост на доске видишь только ты. Можно редактировать сколько угодно, пока не снимешь галку. После этого редактировать нельзя.
Аноним 16/07/15 Чтв 20:32:57 #325 №515675 
>>515671
После того как уберёшь галочку время отправки какое будет?
sageАноним 16/07/15 Чтв 20:37:03 #326 №515677 
>>515675
Точно не помню, но скорее всего изначальное. Должно быть время последнего редактирования, да?
Аноним 16/07/15 Чтв 20:40:50 #327 №515679 
14370684508070.png
>>515677
Где черновик?
Аноним 16/07/15 Чтв 20:42:31 #328 №515680 
>>515677
Это ты скрипт для [CODE] сделал?
Аноним 16/07/15 Чтв 20:47:58 #329 №515689 
Аноны,помогите хоть тут
>>515523 задание соответственно на С++
Там в ответах гляньте рассуждения и чего нибудь наворотите
sageАноним 16/07/15 Чтв 20:48:54 #330 №515690 
>>515679
Введи любой пароль вверху, по нему сервак идентифицирует. Без пароля невозможно будет узнать, кому можно показать пост, а кому нет. В базе не хранится, только в куках.
>>515680
Да.
Аноним 16/07/15 Чтв 20:56:57 #331 №515700 
Сап. Анон, поясни за кое-какие мелочи. Сможешь?
Аноним 16/07/15 Чтв 20:58:25 #332 №515701 
>>515668
Хмм... А зачем тогда вообще прикручивают скриптовые движки, если нет возможности заставить класс-наследника вести себя так, как хочется?
Аноним 16/07/15 Чтв 20:59:15 #333 №515703 
>>515700
Сам понял что спросил?
Аноним 16/07/15 Чтв 20:59:29 #334 №515704 DELETED
Анон-ньюфаг часто стоит перед выбором: С++ или Objective C?

Это все, что тебе надо знать про Objective C:
>The Objective-C class allows a method and a variable with the exact same name.

Не становись говноедом, анон.
Чмоке.
Аноним 16/07/15 Чтв 21:01:46 #335 №515706 
>>515701
Не используют наследование. Скрипты настраивают существующие классы, а не создают новые.
Аноним 16/07/15 Чтв 21:02:55 #336 №515708 
>>515703
Это был риторический вопрос, наверное.
Можно ли работать с интернетом из-под консоли?
Что за библиотеки подключать, и что почитать про этому поводу?
Аноним 16/07/15 Чтв 21:04:05 #337 №515709 
>>515704
А проблема в чем? И вообще странный выбор, впервые слышу о таком.
Аноним 16/07/15 Чтв 21:05:52 #338 №515711 
>>515708
QT или boost и будет тебе интернет из по консоли.
Аноним 16/07/15 Чтв 21:06:34 #339 №515715 
>>515708
Гугли "http programming c++"
Аноним 16/07/15 Чтв 21:07:05 #340 №515716 
>>515711
Какие возможности?
Аноним 16/07/15 Чтв 21:07:35 #341 №515717 
>>515706
Хмм... Я вроде видел, как при моддинге Don't Starve создавали нового моба методом создания нового класса.
Аноним 16/07/15 Чтв 21:07:53 #342 №515718 
>>515715
Там будет уже для приложений вин32, вангую
Аноним 16/07/15 Чтв 21:09:09 #343 №515722 
>>515716
Разные. От регулярных выражений до кнопочек и окошек.
Аноним 16/07/15 Чтв 21:16:07 #344 №515732 
>>515722
Ну допустим, я хочу сделать элементарно запрос на вывод времени. Как это сделать вообще? Нужно обращаться к серверу, запрашивать данные. Как это все делается?
Аноним 16/07/15 Чтв 21:17:24 #345 №515733 
>>515732
Разве чтобы время узнать нужен интернет?
Аноним 16/07/15 Чтв 21:27:50 #346 №515740 
>>515733
А если я хочу точное время с сервера шиндавс? Ну это просто для примера. Вот поясни мне за это
Аноним 16/07/15 Чтв 21:32:26 #347 №515744 
>>515740
Тогда тебе туда https://2ch.hk/pr/res/514112.html
sageАноним 16/07/15 Чтв 21:32:37 #348 №515745 
>>515740
Придется переустановить драйвер биоса.
Аноним 16/07/15 Чтв 21:33:24 #349 №515746 
>>515744
Нахуй мне питон, если я хочу на спп это делать?
Аноним 16/07/15 Чтв 21:34:24 #350 №515748 
>>515745
Говна въебал.
Есть же встроенная утилита синхронизации времени с серверами. Не думаю, что на питоне написано
Аноним 16/07/15 Чтв 21:34:25 #351 №515750 
>>515746
C++ Для этого не предназначен. Проще на питоне.
Аноним 16/07/15 Чтв 21:35:06 #352 №515751 
>>515750
Почему же?
Хочешь сказать с++ не может в синхронизацию?
Аноним 16/07/15 Чтв 21:36:38 #353 №515753 
>>515751
Может. Но тебе перед этим нужно сам С++ выучить за 21 день. Питон быстрее учится.
Аноним 16/07/15 Чтв 21:38:06 #354 №515756 
>>515753
>Но тебе перед этим нужно сам С++ выучить за 21 день
Тонкий юморок кодеров?
Хочу си. Не знаешь как - так и говори
Аноним 16/07/15 Чтв 21:40:22 #355 №515760 
>>515756
> Не знаешь как - так и говори
Да. Ты прав. Я не знаю как такое делать. Это же время в консольки из интернета смотреть.
Аноним 16/07/15 Чтв 21:41:28 #356 №515761 
Собираюсь начать читать Лафоре. Книга старая. Какие могут быть подводные камни?
Аноним 16/07/15 Чтв 21:42:00 #357 №515764 
>>515760
Если тебе не нравится так, то лови идею.
Кончолько быстро чекает время с сервера, сверяет его с системным. Если неправильно - исправляет. Так лучше?
sageАноним 16/07/15 Чтв 21:43:57 #358 №515765 
Залетный чухан разбушевался. Посикал в его гнилой ротешник.
Аноним 16/07/15 Чтв 21:44:49 #359 №515767 
А как скачать XML файлик с сервака и пропарсить его, найти определенный тег, из него прочитать текст, это будет логин. По этому логину найти этого пользователя и открыть его страничку.
Это всё на QT
Аноним 16/07/15 Чтв 21:45:23 #360 №515769 
>>515764
Это тоже не умею делать. Самому стало интересно как.
Аноним 16/07/15 Чтв 21:46:53 #361 №515770 
>>515767
QXmlSimpleReader
Аноним 16/07/15 Чтв 21:48:18 #362 №515773 
>>515769
Просто я уже говорил, что в шиндавс есть встроенная утилита синхронизации с сервером (несколько на выбор). Суть та же, но это надо заходить, искать, выбирать сервер. Проще же было бы просто запустить консольную приложку, которая просто даст тебе на выбор сервер, и настроит твое время на +4 по Гринвичу.
Аноним 16/07/15 Чтв 21:48:42 #363 №515774 
>>515770
QNetworkAccessManager manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply
)), this, SLOT(fileIsReady(QNetworkReply)) );
manager->get(QNetworkRequest(QUrl("http://example.com/your.xml")));
...
void fileIsReady( QNetworkReply
reply)
{
QTemporaryFile temp_file;
temp_file.write(reply->readAll());
}

И дальше этот темп_файл запихнуть в ХмлСимплРидер?
Аноним 16/07/15 Чтв 21:50:58 #364 №515775 
>>515774
Агась. Там юзаешь property и hasProperty.
Аноним 16/07/15 Чтв 21:53:41 #365 №515777 
>>515775
Не понял этого. Это для проверки имени файла?

Алсо, я вроде уже понял как это сделать, но просто не хватает навыка программирование чтоб это всё вписать в программу :(
Аноним 16/07/15 Чтв 21:57:55 #366 №515779 
Знатоки слились? Никто не может пояснить за интернет в консоли?
Аноним 16/07/15 Чтв 22:04:45 #367 №515781 
Переформулирую свой вопрос. Есть основной движок на плюсах, в котором есть типовые объекты (например, Tile). У каждого из них есть типовые функции, для тайла -- инициализация, апдейт (шаг его жизни, грубо говоря), реакция на наступание на него и т.д.

Хочется сделать возможность писать новые тайлы на каком-то незакрытом языке, но при этом не просто задавать параметры, а переписывать эти типовые функции. Нужно это для того, чтобы основной движок просто генерил эвенты и дергал функции, а что конкретно произойдет -- узнавал из открытых для редактирования файлов.

Собственно, вопрос: насколько это вообще реально и как это можно реализовать?
Аноним 16/07/15 Чтв 22:19:11 #368 №515787 
Привет, меня зовут Кирил. Я хочу сделать игру, суть такова:
- графика на SFML
- интерфейс на Qt
Внимание вопрос: это вообще законно?
Аноним 16/07/15 Чтв 22:21:00 #369 №515788 
>>515787
А зачем тебе, собственно, пилить графониум на SFML, если ты и так юзаешь Qt?
Аноним 16/07/15 Чтв 22:22:49 #370 №515790 
>>515788
Я с ним более знаком это раз.
Там есть специфические функции это два.
Аноним 16/07/15 Чтв 22:25:49 #371 №515791 
>>515781
Прикручивают интерпретаор какого-то скриптового языка, часто это lua, так как есть небольшие библиотеки. Наверное для питона есть, хотя хуй знает. Потом через этот интерпретатор вызывают код на скриптах. У Qt есть свой скриптовый язык, правда не знаю можно на нем сдедать такое.
Аноним 16/07/15 Чтв 22:28:58 #372 №515794 
>>515787
http://www.sfml-dev.org/tutorials/1.6/graphics-qt.php
Аноним 16/07/15 Чтв 22:30:06 #373 №515795 
>>515791
А можешь для того же Lua, например, найти ссылку, где описывается такое вот создание наследников скриптами и их интеграция? Я только по настройке скриптами смог маны найти.

В Кьюте есть метапрограммирование, которое в это потенциально может, но как же не хочется с ним возиться.
Аноним 16/07/15 Чтв 22:31:41 #374 №515798 
>>515790
Имхо, проще все-таки писать целиком на Кьюте, потому что не придется мешать два разных стиля программирования. Но я сам с графониумом именно по Кьюту знаком.
Аноним 16/07/15 Чтв 22:46:11 #375 №515804 
>>515795
Никаких наследников. Нельзя добавить новый класс без перекомпиляции. У тебя один класс тайла. Для каждого вида тайла создаешь свой файл скриптов, там функции/переменные с одинаковыми именами, разными реализациями. В конструкторе тайла передаешь имя нужного файла с скриптами., в зависимости от типа тайла. Когда нужно что-то сделать класс дергает функции из своего файла.
Аноним 16/07/15 Чтв 22:54:43 #376 №515807 
>>512370
Долбаеб, реализацию шаблонных классов нельзя вынести в отдельный .СРР файл по правилам языка C++. Пиздец, как же смешно было читать твои комментарии.
Аноним 16/07/15 Чтв 22:55:46 #377 №515809 
>>515795
Попробуй порыться здесь https://eliasdaler.wordpress.com/ Ильюша там делает то что ты хочешь, неуверен конечно там там написано именно то что тебе нужно, при беглом осмотре там только lua скрипты, может в туториалах он там нормально поясняет.
Аноним 16/07/15 Чтв 23:13:44 #378 №515818 DELETED
Пиздец какой ньюфаг в треде.
Анон, поясни в чем разница, учебник как-то очень быстро пробежал эту тему. Зачем там F если и так float?

float 12345;

float 12345F;

Spasibo.
Аноним 16/07/15 Чтв 23:22:46 #379 №515821 
>>515818
Затем, что auto rate = 12345F.
Или i = cake + 12.5F
Аноним 16/07/15 Чтв 23:25:48 #380 №515822 DELETED
>>515821
>ньюфаг
>просил объяснить
>дал пример
>затем, что

Можешь объяснить?
Аноним 16/07/15 Чтв 23:31:33 #381 №515827 
>>515818
1/2 == 0
1f/2 != 0
Аноним 16/07/15 Чтв 23:36:02 #382 №515828 DELETED
>>515827
>>515818
Извини, я тупо задал вопрос.
Вопрос такой - в чем разница:

float a=12345

float a=12345F
Аноним 16/07/15 Чтв 23:37:01 #383 №515829 
>>515822
Задавай вопросы. Мы тут кормим людей, а не прожевываем, чтобы сплюнуть им в рот.

Ты не знаешь, что такое auto? Или не понимаешь, что суммирование флота и инта это не то же самое, что суммирование двух флотов?
Аноним 16/07/15 Чтв 23:41:41 #384 №515830 DELETED
>>515829
Я застрял на декларировании переменных, няш.
Смотри >>515828
Аноним 16/07/15 Чтв 23:58:30 #385 №515836 
>>515818>>515828
Потому что в первой строке у тебя double, который при присвоении приводится к float.
То есть твой код на самом деле эквивалентен этому:
float a = (float) (12345);
float b = 12345F;
В такой виде разницы нет. Но вот добавим умножение к числу на границе точности float: http://ideone.com/4hHqqe
sageАноним 17/07/15 Птн 00:24:41 #386 №515849 
>>515807
>Долбаеб, реализацию шаблонных классов нельзя вынести в отдельный .СРР файл по правилам языка C++. Пиздец, как же смешно было читать твои комментарии.
https://msdn.microsoft.com/en-us/library/by56e477.aspx
Аноним 17/07/15 Птн 02:00:58 #387 №515898 
>>515773
Ну ты и ебанутый, это NTP называется
Обычно ntp клиент есть в линупсах искаропки
Аноним 17/07/15 Птн 02:02:44 #388 №515899 
>>515779
Что тебе, блядь, конкретно то надо?
Аноним 17/07/15 Птн 03:31:05 #389 №515919 
Здравствуйте, у меня возникла не понятная ошибка с которой я не могу справиться и не могу понять откуда она возникла.

visual studio 2015

1>dexmath.h(465): error C2280: '_4matrix::_4matrix(const _4matrix &)': attempting to reference a deleted function
1>dexmath.h(484): note: compiler has generated '_4matrix::_4matrix' here

.h
class D_EXPORT _4matrix
{
public:
_4matrix
(
_point m00, _point m01, _point m02, _point m03,
_point m10, _point m11, _point m12, _point m13,
_point m20, _point m21, _point m22, _point m23,
_point m30, _point m31, _point m32, _point m33
);
_4matrix(void);

static _4matrix identity(void)
{
return _4matrix();
}

inline static _4matrix zero(void)
{
return _4matrix(
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
);
}

union
{
_4point d_4p32[4];
_point d_p32[4][4];
_32un d_u32[4][4];
};
};

.cpp
_4matrix::_4matrix
(
_point m00, _point m01, _point m02, _point m03,
_point m10, _point m11, _point m12, _point m13,
_point m20, _point m21, _point m22, _point m23,
_point m30, _point m31, _point m32, _point m33
)
{
d_p32[0][0] = m00;
d_p32[0][1] = m01;
d_p32[0][2] = m02;
d_p32[0][3] = m03;

d_p32[1][0] = m10;
d_p32[1][1] = m11;
d_p32[1][2] = m12;
d_p32[1][3] = m13;

d_p32[2][0] = m20;
d_p32[2][1] = m21;
d_p32[2][2] = m22;
d_p32[2][3] = m23;

d_p32[3][0] = m30;
d_p32[3][1] = m31;
d_p32[3][2] = m32;
d_p32[3][3] = m33;
}

_4matrix::_4matrix(void)
{
d_p32[0][0] = 1;
d_p32[0][1] = 0;
d_p32[0][2] = 0;
d_p32[0][3] = 0;

d_p32[1][0] = 0;
d_p32[1][1] = 1;
d_p32[1][2] = 0;
d_p32[1][3] = 0;

d_p32[2][0] = 0;
d_p32[2][1] = 0;
d_p32[2][2] = 1;
d_p32[2][3] = 0;

d_p32[3][0] = 0;
d_p32[3][1] = 0;
d_p32[3][2] = 0;
d_p32[3][3] = 1;
}
Аноним 17/07/15 Птн 03:47:04 #390 №515921 DELETED
>>515836
Ах тыж блядь!
По-моему понял. Спасибо!
Аноним 17/07/15 Птн 04:08:49 #391 №515923 
>>515828
Здесь никакой разницы нет, потому что ты явно указываешь, что переменная a относится к типу float. Разница возникает в тех случаях, когда компилятор может об этом не догадаться.

Фигня в том, что float это примерное представление числа с некоторой точностью. И из-за этого могут возникать неприятные косяки. Например, 1234567891.1F - 1234567890.0F = 0, а не 0.1F.
Аноним 17/07/15 Птн 04:09:57 #392 №515924 
>>515923
> Помимо этого, фигня в том
Obvious fix.
Аноним 17/07/15 Птн 04:44:38 #393 №515935 
>>511121
Парни вот поясните за указатели на функцию. Что это? Пока в моем нубо представление, это указатель на возвращаемый функцией объект.
Аноним 17/07/15 Птн 05:03:22 #394 №515940 
>>515935
Поясни, что ты имеешь в виду?
std::function?
Аноним 17/07/15 Птн 05:19:21 #395 №515943 
>>515940
Вот у Праты пример(стр 359, 6 издание)
const double f1(const double ar[], int n);
const double
(p1)(const double , int) = f1;

Что это значит? Почему называется указатель на функцию? Почему не называть просто указатель на возвращаемый объект?


Аноним 17/07/15 Птн 05:20:58 #396 №515944 
>>515943
блять хз как сделать звездочки
const double(звездочка) f1(const double ar[], int n);
const double(звездочка) ((звездочка)p1)(const double(звездочка) , int) = f1;
sageАноним 17/07/15 Птн 06:37:38 #397 №515958 
>>515944
Че не понятно то? Это указатель на место в памяти, где хранится функция. Разыменуешь его и можно будет эту функцию вызвать.
Аноним 17/07/15 Птн 07:41:15 #398 №515961 
>>515919
Какая из этих строок 465?
Сейчас ему не нравится, что где-то неявно должен вызываться не объявленный в классе copy constructor
Аноним 17/07/15 Птн 08:12:29 #399 №515967 
>>515849
Ой дибииил
Аноним 17/07/15 Птн 12:23:21 #400 №516055 
http://pastebin.com/MBR3VmQS

Есть такая хуйня.
Хочу чтоб вводил текст, он добавлялся к ссылке и делая реквест к этой ссылке, он выводил мне всё что придет в текст браузер.
Оно компилируется, но когда нажимаю кнопку реквеста, то пишет:

"QObject::connect: No such signal QNetworkAccessManager::finished(reply) in ..\ATrey\mainwindow.cpp:104
QObject::connect: (receiver name: 'MainWindow')".
Помогите, пожалуйста.
Аноним 17/07/15 Птн 14:19:37 #401 №516107 
>>511121
Лафоре лет 10. Стоит читать?
sageАноним 17/07/15 Птн 14:24:58 #402 №516115 
>>516055
Ебать ты даун.
>QNetworkAccessManager::finished(reply)
>reply
Замени на имя тип. Вроде bool там.
Аноним 17/07/15 Птн 14:30:15 #403 №516120 
>>515961
Да нашёл в
union
{
_4point d_4p32[3];
_point d_p32[4][4];
_32un d_u32[4][4];
};

_4point это класс

union data
{
_4point d_4p32[3];
_point d_p32[4][4];
_32un d_u32[4][4];

~data()
{
}
};

Но нет, так всё сломалось буду отдельную структуру делать
Аноним 17/07/15 Птн 14:33:27 #404 №516123 
>>516120
>~data()
>{
>}
Ты уверен что всё правильно?
Аноним 17/07/15 Птн 14:59:32 #405 №516135 
>>515677
>Должно быть время последнего редактирования, да?
Естественно. Ведь все остальные увидят в момент последнего редактирования. А что я там в формочке писал, вообще неважно, мог ведь и не отправить.
Аноним 17/07/15 Птн 15:07:31 #406 №516139 
>>516123
Нет) так лучше будет.

typedef struct
{
union
{
_point d_p32[4];
_32un d_u32[4];
};
} _4point_dat;

typedef struct
{
union
{
_4point_dat d_4p32[4];
_point d_p32[4][4];
_32un d_u32[4][4];
};
} _4matrix_dat;

class D_EXPORT _4matrix
{
public:
_4matrix
(
_point m00, _point m01, _point m02, _point m03,
_point m10, _point m11, _point m12, _point m13,
_point m20, _point m21, _point m22, _point m23,
_point m30, _point m31, _point m32, _point m33
);
_4matrix(void);

inline ~_4matrix(void)
{
}

static inline _4matrix identity(void)
{
return _4matrix();
}

static inline _4matrix zero(void)
{
return _4matrix(
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
);
}

_4matrix_dat data;
};
sageАноним 17/07/15 Птн 15:17:38 #407 №516144 
>>516135
Да, ты прав, седня с утреца уже сделал.
Аноним 17/07/15 Птн 15:20:46 #408 №516146 
>>516107
Так что скажите?
sageАноним 17/07/15 Птн 15:26:42 #409 №516150 DELETED
Анонс, я решил выучить С++.
Где можно пообщаться с носителями языка? Хотелось бы избавиться от акцента.
Аноним 17/07/15 Птн 15:30:40 #410 №516154 
>>516115
http://doc.qt.io/qt-5/qnetworkaccessmanager.html#finished

Я просто не могу понять, оно ведь хочет чтоб передавали обьект QNetworkReply.

connect(manager, SIGNAL(finished(QNetworkReply)),this, SLOT(replyFinished(QNetworkReply)))

И эта строка говорит, что если манагер сделал свою работу, он занес ее в REPLY и дальше, в REPLYFINISHED, мы уже работаем с этим реплаем.

Кароче хуйня какая то получается у меня.
Аноним 17/07/15 Птн 15:33:13 #411 №516157 
>>516146
TheprogramminglanguageCLecturesandexercises6thEditionPrata
Я вот это читал. Там и резюме в конце каждой главы и вопросы контрольные + задачки для решения.
Аноним 17/07/15 Птн 15:38:30 #412 №516163 
>>516157
Там про хорошо ООП поясняют? Ниразу его раньше не видел.
Аноним 17/07/15 Птн 15:39:24 #413 №516164 
>>516163
Думаю что да.
Аноним 17/07/15 Птн 15:40:42 #414 №516165 
>>516164
Тогда спасибо.
Аноним 17/07/15 Птн 16:18:24 #415 №516189 
>>511252
Унеси это.

Вот: http://www.boost.org/doc/libs/1_58_0/libs/iostreams/doc/classes/zlib.html
Аноним 17/07/15 Птн 17:02:33 #416 №516200 
11 стандарт совместим с предыдущим? 98ым? почему так долго не было нового? Если я программу на 98ом апишу, то на 11ом она тоже пойдёт?
Аноним 17/07/15 Птн 19:19:33 #417 №516274 
>>516200
98->11 совместим
11->98 не совместим
Аноним 17/07/15 Птн 19:20:24 #418 №516275 
>>516200
Был ещё 2003. Собсно, основной сейчас.
Аноним 17/07/15 Птн 19:23:00 #419 №516279 
>>516274
Спасибо. Это и хотел узнать.
>>516275
Почему не 11ый основной сейчас?
Аноним 18/07/15 Суб 00:13:34 #420 №516433 DELETED
Анон, что за хуйня?
Должно быть 1 или 0, почему вдруг 2?
Аноним 18/07/15 Суб 00:58:52 #421 №516443 
>>516433
Return:
A value different from zero (i.e., true) if indeed c is a lowercase alphabetic letter. Zero (i.e., false) otherwise.

А почему - надо читать сорцы.
Аноним 18/07/15 Суб 01:14:55 #422 №516451 
>>516279
Я имею в виду в коммерческой разработке. Многие вынуждены поддерживать старые компиляторы.
А вообще уже c++14.
Аноним 18/07/15 Суб 04:46:15 #423 №516506 DELETED
>>516443
>A value different from zero (i.e., true) if indeed c is a lowercase alphabetic letter. Zero (i.e., false) otherwise.

Бля, действительно, в задании:
A library function, islower(), takes a single character (a letter) as an argument and
returns a nonzero integer if the letter is lowercase, or zero if it is uppercase.
Аноним 18/07/15 Суб 14:42:34 #424 №516664 
Анон, есть задача: поток x запускает другие потоки, не более N, соответственно когда один из этих потоков завершен, он может запустить новый и т.д. Можно сделать примерно так:

void f(atomic_int cnt) { cnt--; }

А здесь код выполняющийся в потоке x:

int max_thread(4);
atomic_int cnt(0);
while (true) {
if (cnt.load()<max_thread) {
++cnt;
thread t(f,&cnt);
t.detach();
}
this_thread::sleep_for(chrono::seconds(1)); //промежуток для примера
}

Но меня здесь напрягает цикл и sleep_for, собственно вопрос: можно-ли это сделать более эффективно?
Аноним 18/07/15 Суб 14:45:59 #425 №516666 
14372197545330.gif
>>516664
f, конечно, принимает указатель.
Аноним 18/07/15 Суб 14:50:49 #426 №516670 
>>516666
google: c++ event semaphore
Аноним 18/07/15 Суб 15:42:34 #427 №516687 
Почему rand() дает одно и то же число при каждом запуске программы?
Аноним 18/07/15 Суб 15:59:38 #428 №516689 
>>516687
Потому что seed одинаковый. Нужно еще srand() вызывать.
Аноним 18/07/15 Суб 16:05:00 #429 №516691 
>>516689
Поясни
Аноним 18/07/15 Суб 16:11:01 #430 №516692 
>>516691
rand() это детерминированый алгоритм который получает на вход число (seed - скрыто в дебрях стандартной библиотеки) и возвращает другое число, напервый взгляд никак не связаное. В качестве seed исползуется чило возвращенное rand() последний раз. А так как при запуске программы вызывов rand() еще небыло, там записано какое-то число по умолчанию, всегда одинаковое. Используя srand() можно вписать другой seed и получить другую последовательность псевдослучайных чисел.
Аноним 18/07/15 Суб 17:17:50 #431 №516727 
>>516670
А есть ли какое-нибудь более переносимое решение?
Аноним 18/07/15 Суб 17:47:55 #432 №516746 
>>516692
То есть вместо rand мне просто писать srand? Как там с оформлением?
Аноним 18/07/15 Суб 17:57:00 #433 №516750 
>>516746
Нет. Ты вызываешь srand однажды и инициализируешь, например, временем. Тут есть простой пример: http://en.cppreference.com/w/cpp/numeric/random/rand
Аноним 18/07/15 Суб 17:57:00 #434 №516751 
>>516746
http://www.cplusplus.com/reference/cstdlib/rand/
Используешь srand с временем и будет тебе каждый раз новое число.
Вся суть Аноним 18/07/15 Суб 18:58:13 #435 №516781 
> Sams Teach Yourself C++ in 10 Minutes (2nd Edition)
http://www.amazon.com/dp/0672324253

Customers Who Viewed This Item Also Viewed:
>Passion Natural Water-Based Lubricant - 55 Gallon
http://www.amazon.com/dp/B005MR3IVO
Аноним 19/07/15 Вск 00:54:07 #436 №516899 
Народ, объясни нубу почему этот код выдаёт 02, а не 0?

http://pastebin.com/83WWQ69y
Аноним 19/07/15 Вск 00:55:03 #437 №516901 
>>516899
break;забыл
Аноним 19/07/15 Вск 00:56:22 #438 №516902 
>>516901
Блять x_X
Уже заметил. Надо спать идти.
Аноним 19/07/15 Вск 01:56:42 #439 №516914 
Оп вкатывается в тред после трехдневного отсутствия. Я тут вроде как в командировке, пекарни нет, и поэтому активно участвовать в дискуссиях не смогу еще где-то неделю. Но с шапкой разберусь, в новом треде все будет. Такие дела.
Аноним 19/07/15 Вск 02:31:54 #440 №516927 
>>516914
Да и о боже добавьте последнего Прату в шапку.
Аноним 19/07/15 Вск 09:55:23 #441 №516971 
Скажите, ананасы, насколько плохой стиль -- использовать фигурные скобки после комментария для того, чтобы удобно скрывать?

Типа, такая запись:

// Doing your mom.
{
onBoardHerAss();
}

в кьютокриэйторе скрывается в :

// Doing your mom. { ... }
Аноним 19/07/15 Вск 10:09:24 #442 №516977 
>>516971
http://habrahabr.ru/post/150329/
Если ты о стиле программирования, то вот.
Аноним 19/07/15 Вск 13:23:17 #443 №517013 
Плюсаны, а можно переместить курсор в консоли стандартными средствами iostream? Знаю, что можно использовать winapi, но как-то мне не нравится такой вариант: к примеру, на линухе же не получится использовать winapi.
Аноним 19/07/15 Вск 15:15:24 #444 №517050 
>>517013
Нет. Набор стандартных способов заимоействия с консолью очень ограничен, так как считается что консоль это устройство типа телетайп с очень ограниченым функционалом. Если в твоей системе в качестве консоли используется устройство с более широким функционалом - тебе нужно уже дергать драйвера этого устройства. А конкретно в операционной системе виндоуз консоль вообще гавно. Если тебе нужно переносимое решение, одним из вариантов может быть использование библиотек, например ncurses.
Аноним 19/07/15 Вск 15:43:35 #445 №517061 
>>517050
Спасибо, понял. То есть если писать конкретно под шиндовс, то гораздо разумнее юзать их библиотеку?
Аноним 19/07/15 Вск 15:55:37 #446 №517068 
>>517013
Ограниченно можно попробовать \b, но работает он не всегда.
Аноним 19/07/15 Вск 15:58:54 #447 №517072 
>>517068
Он не позволяет на строку вверх подняться.
Аноним 19/07/15 Вск 16:17:40 #448 №517081 
Двачаны, помогите нубасу. Как написать программу решающую анаграммы (например spot - stop, file - life)?
Мне пока ещё очень тяжело работать со строками на крестах, так что я не очень понимаю алгоритм. Как я думаю, сначала нужно попросить пользователя ввести слово, потом ему нужно посчитать количество букв в слове и создать многомерный массив или что-то типа того. В общем введя слово "faggot" нужно, чтобы программа перебирала словарь в поиске слов где есть одна a, одна f, две g, одна o и одна t. Как это делать - душой не ебу. Неужели нужно создать цикл под каждую букву алфавита? Дальше поиск по словарю и вывод слов совпадающих с введённым, но не являющиеся собственно введённым. То есть если в словаре есть слово stop, и пользователь введёт stop оно не выводило stop как решение анаграммы. В общем почти ничего не понимаю, подскажите. Можно ли сделать проще? А то как-то много циклов выйдет.
Аноним 19/07/15 Вск 16:24:09 #449 №517083 
>>517081
Каждый раз делать перебор - будет слишком большая алгоритмическая сложность. Тебе нужен индекс.
Заводишь индекс multi_map<string, string>. Далее для каждого слова в словаре английских слов:
1. Сортируешь символы по алфавиту. stop => opst. Например, конвертируешь string в vector<char> и вызываешь std::sort.
2. Запихиваешь в multi_map по ключу opst это слово.
Аноним 19/07/15 Вск 16:25:21 #450 №517084 
Таким образом ты получишь структуру данных {opst=>[stop, spot], efil => [file, life]}. Дальше поиск анаграмм тривиальный - сортируешь твое слово, лезешь в индекс, получаешь все анаграммы.
Аноним 19/07/15 Вск 16:34:23 #451 №517093 
>>517081
Тебе нужно сгенерировать все перестановки твоих букв. Проще всего рекурсивно берешь первую букву, генеришь все перестановки оставшихся букв, к этим перестановкам добавляешь взятую перую букву в начало. Потом тоже самое для второй и т.д. Слово stop просто пропускаешь, там в зависимости от алгоритма оно может напрмиер генерироватся всегда первым.
Аноним 19/07/15 Вск 17:23:35 #452 №517123 
>>517093
Ну так если человек введет spot, то нужно выдать stop, а stop не выдавать. Прикол не в том, чтобы stop не показывать, а в том, чтобы пользователю не предлагалось слово, которое он ввёл в качестве решения для анаграммы. Наверное просто строки strcmp'ом сравню.
>>517083
Спс. Понял что лох и многого не знаю. Буду долго писать, а вроде такая простая хрень.
Аноним 19/07/15 Вск 18:30:34 #453 №517199 
Почему только одна книга Страуструпа в шапке?
Для нюфань
Programming Principles and Practice Using C++ - rutracker.org
Для беглого осмотра основ
A Tour of C++ - rutracker.org
"For mastery"
The C++ Programming Language(4-е издание) - rutracker.org
Аноним 19/07/15 Вск 18:43:19 #454 №517217 
>>517199
Потому что субъективщина. Где например C++ за 21 день?
Аноним 19/07/15 Вск 18:44:34 #455 №517218 
А как сейчас фрилансерам на плюсах? Может можно чего заработать, занимаясь доковыриванием старого говна?
Аноним 19/07/15 Вск 19:02:16 #456 №517243 
>>517218
Если можешь в qt - то норм. Да и гейдев хоть и дохлый, но все же. А вот насчёт этого не знаю. Думаю, так на любом яп много не заработаешь.
Аноним 19/07/15 Вск 19:13:39 #457 №517259 
>>517217
Страуструп, так-то, уважаемый человек!
Аноним 19/07/15 Вск 20:00:46 #458 №517285 
Уже третий день пишу рандомный генератор пещер. Остановился на половине, заметив, что код какой-то не крестовый. То есть он работает, хоть и, пока что, хуево, но чувствую, что так писать на крестах нельзя. Так что пока не поздно, прошу помочь и указать на ошибки структуирования программы и на плохой стиль.

main.cpp
http://ideone.com/LZcHnR

Dungeon.h
http://ideone.com/jjOZLH

Dungeon.cpp
http://ideone.com/ZWVYj

Constants.h
http://ideone.com/yBoTh6
Аноним 19/07/15 Вск 20:57:31 #459 №517327 
>>517285
Фикс
Dungeon.cpp
http://ideone.com/ZWVYj6
Аноним 19/07/15 Вск 21:37:07 #460 №517355 
Хотел скачать с официального сайта Qt Qtcreator. Получил пикрелейтед. Сайт вообще живой?

http://www.qt.io/download
Аноним 19/07/15 Вск 21:41:04 #461 №517365 
14373310276630.png
>>517355
Да, сегодня тоже зашел и такая хуйня. Подожди малёха, думаю оживет.
Аноним 19/07/15 Вск 22:19:27 #462 №517387 
В природе существует документация/референс к плюсовым биндингам ncurses? Не хотет курить сырцы.
Аноним 19/07/15 Вск 22:43:37 #463 №517400 
>>517081
Для такого рода поиска словарь делают с помощью графа.
Аноним 20/07/15 Пнд 00:04:27 #464 №517441 
>>517259
На самом деле нет. Для новичков вообще не годится. Такое чувство, будто страус думает, что C++ все с рождения знают
Аноним 20/07/15 Пнд 00:24:59 #465 №517456 
>>513457
А что это за IDE у тебя?
Аноним 20/07/15 Пнд 01:19:32 #466 №517473 
>>517456
Кодблокс.
Аноним 20/07/15 Пнд 10:42:35 #467 №517537 
Анон, а подскажи какой-нибудь хороший способ разработки и тестирования ПО доступный для одиночных прогеров. И если знаешь, что можно почитать об этом на великом и могучем.
пытаюсь перевернуть строку nubas 20/07/15 Пнд 15:58:22 #468 №517659 
14373781553950.jpg
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char* argv[])
{
char str[80];
char buf[80];
cout<<"Enter string : \n"<<endl;
cin.getline(str,80);
int i=strlen(str)-1, j=0;

while (str>=0) {
buf= str[j];
i--;
j++;}
cout << buf;
return 0;

-------------------------------------
переворачивается, но иногда в конце вот эта собачка, почему она там?
Аноним 20/07/15 Пнд 16:01:02 #469 №517661 
14373971029220.png
14373971029221.png
>>517659
>>517659
поправил
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char* argv[])
{
char str[80];
char buf[80];
cout<<"Enter string : \n"<<endl;
cin.getline(str,80);
int i=strlen(str)-1, j=0;

while (str>=0) {
buf= str[j];
i--;
j++;}
cout << buf;
return 0;
}
Аноним 20/07/15 Пнд 16:52:47 #470 №517717 
>>517659
Терминальный нуль забыл.
Аноним 20/07/15 Пнд 17:35:38 #471 №517768 
>>517717
спасибоу, а я думал он сам как-то добавляется
Аноним 20/07/15 Пнд 17:50:38 #472 №517780 
Крестоносцы, что за хрень у вас на оппике? (Долго не заходил на двач)

JIT у нас лучше, чем обычная компиляция?
Строгая типизация это что-то плохое?
C ещё не на свалке истории?

Или это типа само троллинг? Тогда где php?
Аноним 20/07/15 Пнд 19:02:34 #473 №517822 
>>517780
>C ещё не на свалке истории?
Далеко ему еще, к сожалению.
мимосишник
Аноним 20/07/15 Пнд 19:22:01 #474 №517829 
>>517780
>само троллинг
This. Ну и еще своеобразный топ доебов, которыми школьники с жабами и пистонами пытаются доказать, что их язык лучше.
sageАноним 20/07/15 Пнд 20:25:08 #475 №517850 
>>517780
Ты че, охуел? Динамическая типизация - это так здорово! Часами отлаживать код, устранять ошибки, которые могли бы быть замечены на этапе компиляции - что может быть прекраснее? Тупым крестоблядям не понять, ведь они не тратят впустую время на устранение граблей, которые им услужливо подставляет собственный язык. Да, жабаскрипт, я на тебя намекаю.
Аноним 20/07/15 Пнд 21:10:56 #476 №517876 
поддвачнём аноны!
https://2ch.hk/pr/res/517858.html
Аноним 20/07/15 Пнд 21:38:02 #477 №517900 
>>517822
Ну это я загнул немного. На самом деле C++ без QT довольно мало применим. А зачем нужен чистый си в наше время? Микроконтроллеры небось микроконтроллишь?
Аноним 20/07/15 Пнд 21:48:23 #478 №517913 
>>517900
>C++ без QT довольно мало применим
Вот уж где загнул так загнул. Даже если забыть про килотонны тырпрайзного легаси времен, когда куте еще не было. И да, я не люблю QT, но таки на самом деле гораздо чаще вижу проекты без него.
sageАноним 20/07/15 Пнд 22:50:47 #479 №517952 
>>517876
>На самом деле C++ без QT довольно мало применим
на основании своего богатого опыта написания laba6 вещаешь?
Аноним 20/07/15 Пнд 23:09:11 #480 №517959 
>>517900
>Микроконтроллеры небось микроконтроллишь?
Не, телефонные сети.
Аноним 20/07/15 Пнд 23:12:14 #481 №517962 
>>517959
Это что такое? Покажи! Научи! Хотеть!
Аноним 20/07/15 Пнд 23:14:47 #482 №517963 
>>517962
Стек протоколов SS7, некоторые из них жуткое легаси, вроде TCAP, но вот мобильные протоколы нормально так обновляются.
Аноним 20/07/15 Пнд 23:19:40 #483 №517967 
>>517963
А я ничего не понял. Ты вообще чем занимаешься на работе?
Аноним 20/07/15 Пнд 23:22:30 #484 №517969 
Сап. Очередной студентоид просит совета.
Курсовая - система учета в аптеке. База данных, связи между объектами, окошки и прочая лабуда, ничего интересного. Нужно написать на С++. Но есть один нюанс. Универ не совсем... айтишный и запускать надо будет все это дело на университетской Visual Studio (надеюсь, старше 2013). Никаких бустов, Qt и прочего. Максимум .net.
Но есть одна проблема. Я красноглазый пердолик и вообще предпочитаю скрипты.
Есть два стула:
1) Максимально изъебнуться и любой ценой сделать кроссплатформенное приложение. Статически скомпановать его с qt, рисовать на opengl, что угодно, но заставить приложение работать в прыщах.
2) Расслабить пукан и позволить дотнету войти в меня. Написать непортируемое приложение конкретно под Windows, максимально задействовать виндовые компоненты и библиотеки. И попытаться запустить на Mono, конечно.

Наверное оба варианта для меня одинаково интересны. Что посоветуете?
Не буду письку сосать
Аноним 20/07/15 Пнд 23:23:24 #485 №517970 
14374237501580.jpg
>>517967
Код пишу.
Аноним 20/07/15 Пнд 23:31:05 #486 №517971 
>>517969
Пиши на C#, скажешь что это новый C++.
Аноним 20/07/15 Пнд 23:36:32 #487 №517974 
>>517970
А кода он потом деётся?
Аноним 20/07/15 Пнд 23:43:53 #488 №517976 
>>517969
Учитывая, что системы учета в аптеке на С++ никто в здравом уме не пишет (красноглазые пользуют Java), то пиши на дуднете - отличий с C# будет минимум, а так ты хоть будешь знать, как это делается.
Аноним 20/07/15 Пнд 23:47:25 #489 №517979 
>>517971
Содомит!
>Универ не совсем... айтишный
Может сработать, базарю.
Аноним 20/07/15 Пнд 23:53:10 #490 №517982 
Реквестирую сайт в интернете где есть задачи разных уровней сложности. Можно решив задачу отправить её туда чтобы он прогнал по тестам. И чтобы были авторские решение с описание алгоритма решения и обязательно описанием кода.
Аноним 20/07/15 Пнд 23:54:27 #491 №517984 
>>517974
На кластеры под линухом/виндой/солярой
Аноним 20/07/15 Пнд 23:59:23 #492 №517985 
>>517984
И что он делает? И что делают те кластеры? Простым языком.
Аноним 21/07/15 Втр 00:00:49 #493 №517987 
>>517985
Антош, не приставай к взрослым.
Аноним 21/07/15 Втр 00:10:34 #494 №517996 
>>517985
Да много что он делает.
Менеджмент линий, абонентов, геолокации, всякие сервисы типа запроса баланса (точнее он предоставляет интерфейс для реализации подобных сервисов), доставка смс, пакетных данных и прочие радости твоей жизни.
Аноним 21/07/15 Втр 00:12:22 #495 №517997 
>>517996
Это нельзя сделать на высоком языке из-за производительности, или чтобы не рефакторить?
Аноним 21/07/15 Втр 00:14:16 #496 №517999 
>>511121
Слушай, как в юзерскрипте отключить показ кода с pastebin и ideone?
Аноним 21/07/15 Втр 00:14:43 #497 №518000 
>>517997
Основа была запилена в далеком 1980 году, с тех пор никому не хотелось переделывать огромные портянки кода. Производительность там тоже в приоритете, каждый % деградации сопровождается сильным недовольством заказчика.
Аноним 21/07/15 Втр 00:24:07 #498 №518009 
НОВЫЙ ТРЕД
Поспешил - людей насмешил.
https://2ch.hk/pr/res/518004.html
https://2ch.hk/pr/res/518004.html
https://2ch.hk/pr/res/518004.html
Аноним 21/07/15 Втр 00:24:49 #499 №518010 
>>518000
Наврал наверное про 1980. Сейчас вот нашел только код датированный 1993 г., но сути это сильно не меняет, легаси оно и есть легаси.
Аноним 21/07/15 Втр 00:31:32 #500 №518013 
Открыть кингстоны!
Аноним 21/07/15 Втр 00:57:37 #501 №518036 
>>517537
tdd + catch
Аноним 22/07/15 Срд 13:53:05 #502 №519059 
>>515040
скажи, на основе чего ты это писал? http-сервер сам писал или что-то готовое? какие либы или фреймворки юзал?
Аноним 22/07/15 Срд 21:11:36 #503 №519248 
>>519059
Найди его пост на хабре
comments powered by Disqus

Отзывы и предложения