Публикации по теме 'cpp'
Обзор систем сборки (в основном для проектов C ++)
Поговорим о системах сборки.
Примечание: это в основном перевод моей публикации на LinuxFR.org . Если ваш родной язык французский или аналогичный, вы можете прочитать его там.
Моя работа - программировать видеоигры, ориентированные на устройства iOS и Android. Специфичные для платформы разделы написаны на Objective-C или Java соответственно, а части, общие для обеих платформ, то есть 99% приложения, написаны на C ++. Основной интерес в том, чтобы делать все на C ++, заключается в..
Как извлечь имя каталога файлов из пути к файлу в C++
Как извлечь имя каталога файлов из пути к файлу в C++
В C++ Builder есть специальные процедуры управления путями , которые позволяют пользователям редактировать, извлекать, получать и устанавливать имя диска, имя каталога, имя файла и расширения файлов. Эти методы объединены в библиотеках Vcl.FileCtrl , System.IOUtils , System.SysUtils . Методы управления путями просты в использовании и упрощают процесс получения или установки строк пути к файлу. Их можно использовать с другими..
Знайте, когда использовать delete и когда использовать delete[] в C++
Я хочу поделиться с вами небольшим советом от Скотта Мейерса, автора книги Effective C++ .
Позвольте мне спросить вас:
Знаете ли вы, когда использовать delete и когда использовать delete[] ?
Например, правильный ли следующий пример?
std::string *myStrings=new std::string[10];
//...
delete myString;
Вы можете предположить, что поскольку мы вызываем delete , все объекты, созданные с помощью new , будут освобождены. На самом деле будет освобожден только один из 10 объектов...
Без формы и пустоты
В C ++ void - довольно странная вещь. Мы можем преобразовывать выражения в void , throw-expression иметь void тип, void* может указывать на что угодно, а void функции могут фактически возвращаться обратно вызывающей стороне. Но у нас не может быть объектов типа void или даже написать такой тип, как void& . Объявление функции типа void f(void) на самом деле является нулевой функцией. Это немного странно, но это не то, из-за чего многие люди теряют сон.
Пока он не..
LeetCode — Игра с прыжками
Постановка задачи
Вам дан целочисленный массив nums . Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет вашу максимальную длину прыжка в этой позиции.
Верните true , если вы можете добраться до последнего индекса, или false в противном случае.
Постановка задачи взята с: https://leetcode.com/problems/jump-game
Пример 1:
Input: nums = [2, 3, 1, 1, 4]
Output: true
Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last..
Исключения времени компиляции C ++
Отладка шаблонов C ++ должна быть менее сюрреалистичной и ужасной
Ошибка шаблона C ++ может быть длинной, очень плотной и ужасной. Часто они совершенно бесполезны для пользователей библиотеки, и вам приходится обращаться за помощью к разработчикам. Разработчики часто могут фильтровать или изменять сообщение об ошибке, чтобы сделать его более продуктивным для своих пользователей. В этом посте я предлагаю добавить в C ++ исключения времени компиляции , которые позволят разработчику..
Семантика перемещения в C ++ и Rust: случай деструктивных ходов
Для языков программирования, ориентированных на значения, семантика перемещения представляет собой большой шаг вперед как в оптимизации, так и в представлении инвариантов уникальности. C ++ выбрал путь неразрушающих перемещений, при котором переменные перемещения по-прежнему можно использовать (хотя обычно в неопределенном состоянии). Rust, с другой стороны, использует деструктивные ходы, при которых переменная перемещенного объекта больше не может использоваться. Я расскажу об обоих..