Публикации по теме 'cpp'


Реальное программирование CUDA — часть 4 — проверка ошибок
Проверка ошибок является важной частью каждой программы. Мы должны знать, когда наши операции завершились неудачно, чтобы мы могли повторить попытку или, по крайней мере, зарегистрировать проблему для последующего анализа. tl;dr Проверка ошибок в CUDA должна выполняться вручную, к счастью, Toolkit предоставляет полезные методы для этого. Ошибка проверки в CUDA К сожалению для нас, код CUDA выполняется на GPU, поэтому для параллельного (concurrent) кода нет стека, из которого мы могли..

С++ решение XOR для нечетного события
Я столкнулся со следующей проблемой на codility.com, и решение оказалось таким простым. Так вот, сегодня я узнал… Задача: Дан непустой массив A с нулевым индексом, состоящий из N целых чисел. Массив содержит нечетное количество элементов, и каждый элемент массива может быть сопряжен с другим элементом, имеющим такое же значение, за исключением одного элемента, который не имеет пары. Каково значение непарного элемента? Решение: int solution(vector<int> &A) { int odd1 =..

Раскрытие тайн C ++ lvalues ​​и rvalues ​​(II)
Раскрытие тайн C ++ lvalues ​​и rvalues ​​(II) Часть вторая: ссылки на lvalues ​​и rvalues. С появлением C ++ 11 значение и важность lvalues ​​и rvalues ​​расширились. Это важные понятия, которые нужно понять, поскольку они используются по-разному, и вы обнаружите, что они связаны со многими концепциями, такими как ссылки lvalue / rvalue, семантика перемещения, идеальная пересылка и конструкторы перемещения среди других. В этой серии из трех частей мы собираемся раскрыть все эти..

Как ускорить сборку и анализ вашего проекта с помощью IncrediBuild?
— Сколько еще ты собираешься его строить? — фраза, которую хотя бы раз посреди ночи произносил каждый разработчик. Да, сборка может быть долгой, и от нее никуда не деться. Нельзя просто так все это дело перераспределить между 100+ ядрами, вместо каких-то жалких 8-12. Или это возможно? Мне нужно больше ядер! Как вы могли заметить, сегодняшняя статья посвящена тому, как ускорить компиляцию и статический анализ. Но какое отношение ускорение компиляции имеет к статическому анализу?..

Ужасно низкая производительность обычных наборов точек с std :: unordered_set
По вопросу выбора контейнера, подобного множеству, самые опытные разработчики C ++ скажут вам: «Используйте std::unordered_set вместо std::set . Это более эффективно. Конечно, для больших наборов данных ». Если они достаточно дружелюбны, чтобы дать вам дальнейшие советы, они также расскажут вам о важности выбора хорошей хеш-функции и о том, что качественные хэши для вычисления могут быть дорогими. Кроме того, специальный оператор равенства, как того требует std::unordered_set , может..

Приоритет в коде парадигм дизайна, ориентированного на данные
Более внимательный подход к разработке программного обеспечения Когда разработчики программного обеспечения задумываются о том, как выглядит хороший дизайн программного обеспечения при работе с высокоуровневыми языками программирования, многие умы инстинктивно приходят к руководящим принципам объектно-ориентированного программирования (ООП) . Мы так сильно опираемся на эту парадигму не только потому, что большинство из нас учились так, но и потому, что объектно-ориентированный..

«Почему до сих пор нет искусственного интеллекта?»
Microsoft предоставила открытый доступ к исходному коду набора инструментов, который используется в компании для ускорения разработки искусственного интеллекта: Computational Network Toolkit теперь доступен на Github. Разработчикам пришлось создавать собственное нестандартное решение, так как существующие инструменты работали недостаточно быстро. Давайте посмотрим на результаты анализа исходного кода этого проекта, выполненного нашим статическим анализатором кода. Введение..