Как найти и отпринтить узлы, у которых нет братьев и сестёр?Помимо имплементации на С++, статья содержит псевдокод, поэтому вы сами можете потренироваться и реализовать поиск.
https://teletype.in/@heisenbug/HkxENxDqr
https://teletype.in/@heisenbug/HkxENxDqr
Teletype
Print All Nodes that don't have Sibling
Problem Statement:
Что выведет программа?
#include <iostream> int main(int argc, const char * argv[]) { int a[] = {1, 2, 3, 4, 5, 6}; std::cout << (1 + 3)[a] - a[0] + (a + 1)[2]; }
#include <iostream> int main(int argc, const char * argv[]) { int a[] = {1, 2, 3, 4, 5, 6}; std::cout << (1 + 3)[a] - a[0] + (a + 1)[2]; }
Anonymous Poll
3%
2
6%
4
10%
6
74%
8
7%
10
Правильный ответ: 8
(1+3)[a] – это то же, что и a[1+3]==5
a[0]==1
(a+1)[2] можно записать в виде a[3]==4
В итоге:
5-1+4=8
(1+3)[a] – это то же, что и a[1+3]==5
a[0]==1
(a+1)[2] можно записать в виде a[3]==4
В итоге:
5-1+4=8
Что хранит в себе vtable?
Anonymous Poll
11%
Таблицу данных.
83%
Адреса виртуальных функций.
7%
Данные виртуального окружения.
Что хранит в себе vtable?
Адреса виртуальных функций.
Всякий раз, когда в программе объявляется виртуальная функция, создается координирующая таблица vtable. Она хранит адреса виртуальных функций.
Адреса виртуальных функций.
Всякий раз, когда в программе объявляется виртуальная функция, создается координирующая таблица vtable. Она хранит адреса виртуальных функций.
Какими бывают виды специализации шаблона?
Anonymous Poll
72%
Полная и частичная.
16%
Строго и частично фиксированная.
13%
Мультипоточная и итерационная.
Какими бывают виды специализации шаблона?
Полная и частичная специализация — верный ответ.
Полная и частичная специализация — верный ответ.
С-трюк: Расчет времени между событиями
Фрагмент кода для расчета времени, прошедшего между двумя событиями (к примеру, чтобы выяснить, сколько времени займет выполнение чего-либо).
Фрагмент кода для расчета времени, прошедшего между двумя событиями (к примеру, чтобы выяснить, сколько времени займет выполнение чего-либо).
#include "stdafx.h"
#include <time.h>
#include <windows.h>
#include <stdlib.h>
clock_t startm, stopm;
#define BEGIN if ( (startm = clock()) == -1) \
{ \
printf("clock returned error.");exit(1); \
} \
#define CLOSE if ( (stopm = clock()) == -1) \
{printf("clock returned error."); \
exit(1); \
} \
#define SHOWTIME printf( "%6.3f seconds elapsed.", ((double)stopm-startm)/CLOCKS_PER_SEC);
main() {
BEGIN;
// Specify set of instructions for you want to measure execution time
Sleep(10);
CLOSE;
SHOWTIME;
}
Что в классе? Принципы интерфейса
«Что в классе?» — очень неплохая статья Герба Саттера. Автор утверждает, что можно легко расширить любой класс с помощью простых функций.
Герб Саттер заключает, приводя читателя к трем мыслям:
- Принцип интерфейса: для класса X все функции, включая свободные, являются логически частью X, потому что они образуют часть интерфейса Х.
- Поэтому функции-члены и не члены могут быть логически частью класса. Однако функция-член все еще более тесно связана с классом, чем не член.
- Если функция появляется в том же заголовке, что и класс, она является частью класса с точки зрения зависимостей. Если функция появляется в том же пространстве имен, что и класс, она является частью класса с точки зрения использования объекта и поиска имени.
«Что в классе?» — очень неплохая статья Герба Саттера. Автор утверждает, что можно легко расширить любой класс с помощью простых функций.
Герб Саттер заключает, приводя читателя к трем мыслям:
- Принцип интерфейса: для класса X все функции, включая свободные, являются логически частью X, потому что они образуют часть интерфейса Х.
- Поэтому функции-члены и не члены могут быть логически частью класса. Однако функция-член все еще более тесно связана с классом, чем не член.
- Если функция появляется в том же заголовке, что и класс, она является частью класса с точки зрения зависимостей. Если функция появляется в том же пространстве имен, что и класс, она является частью класса с точки зрения использования объекта и поиска имени.
Последнее и лучшее в Visual Studio 2019 для C++ разработчиков:
YouTube
Latest & Greatest in Visual Studio 2019 for C++ developers - Marian Luparu, Sy Brand - CppCon 2019
http://CppCon.org
—
Discussion & Comments: https://www.reddit.com/r/cpp/
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2019
—
Visual Studio 2019 was released earlier this year, and…
—
Discussion & Comments: https://www.reddit.com/r/cpp/
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2019
—
Visual Studio 2019 was released earlier this year, and…
Публикация диаграммы состояния функций, проблем и багов.👍
animation.gif
85.7 KB
C++ Build Insights: новая коллекция инструментов для анализа и ускорения ваших сборок C++. В статье показана возможность самостоятельно вносить улучшения.
Функция C++, возвращающая разные типы в зависимости от стороны вызова
"Вот что-то сумасшедшее: у вас есть функция, которая имеет два разных вызова. Один из них ожидает, что функция вернет widget. Другой ожидает, что функция вернет doodad". Автор статьи Раймонд показывает, как возвращать объект, который еще не знает, является ли он widget или doodad.
"Вот что-то сумасшедшее: у вас есть функция, которая имеет два разных вызова. Один из них ожидает, что функция вернет widget. Другой ожидает, что функция вернет doodad". Автор статьи Раймонд показывает, как возвращать объект, который еще не знает, является ли он widget или doodad.
Microsoft News
How can I have a C++ function that returns different types depending on what the caller wants?
Quantum superposition comes to C++.
Онлайн-платформа goods открывает несколько вакансий на должности:
Frontend-разработчик
Backend-разработчик
Middle Android Developer
Golang Developer
Senior Golang Developer
Что мы предлагаем своим разработчикам маркетплейса? Комфортный офис в центре города, официальное оформление, высокую зарплату, премии и бонусы, бесплатные курсы, ДМС и годовые абонементы в фитнес-клубы.
Не упусти свой шанс! Пиши на почту: [email protected]
Если не нашли себе подходящую вакансию - посетите нашу страницу с рассказом о компании, фотками из офиса и множеством других вакансий - https://prglb.ru/19g3e
Frontend-разработчик
Backend-разработчик
Middle Android Developer
Golang Developer
Senior Golang Developer
Что мы предлагаем своим разработчикам маркетплейса? Комфортный офис в центре города, официальное оформление, высокую зарплату, премии и бонусы, бесплатные курсы, ДМС и годовые абонементы в фитнес-клубы.
Не упусти свой шанс! Пиши на почту: [email protected]
Если не нашли себе подходящую вакансию - посетите нашу страницу с рассказом о компании, фотками из офиса и множеством других вакансий - https://prglb.ru/19g3e
Самые важные советы для начинающих разработчиков С++
Джон М. Длугош вводит «горячий список», основанный на фактическом коде, создаваемом командой, с которой он работает. Вместо полного руководства с подробными пояснениями, это краткий список того, на что следует обращать внимание, который постоянно обновляется на основе того, что автор видит в обзорах кода.
Джон М. Длугош вводит «горячий список», основанный на фактическом коде, создаваемом командой, с которой он работает. Вместо полного руководства с подробными пояснениями, это краткий список того, на что следует обращать внимание, который постоянно обновляется на основе того, что автор видит в обзорах кода.
CodeProject
The Most Essential C++ Advice
Short list of things to watch out for when using C++
Какой инструмент статического анализа кода лучше в C: Klocwork или Coverity?
У каждой системы есть свои плюсы и минусы. Спрашивая, что лучше Windows или Linux, к примеру, мнения явно разойдутся. Поскольку каждый современный коммерческий анализатор кода является достаточно эффективным с точки зрения обнаружения ошибок, скорее всего вы сделаете выбор, основываясь на удобстве этого инструмента для вашей команды.
У каждой системы есть свои плюсы и минусы. Спрашивая, что лучше Windows или Linux, к примеру, мнения явно разойдутся. Поскольку каждый современный коммерческий анализатор кода является достаточно эффективным с точки зрения обнаружения ошибок, скорее всего вы сделаете выбор, основываясь на удобстве этого инструмента для вашей команды.
Коротко о stb
stb — это однофайловые общедоступные (или лицензированные MIT) библиотеки для C / C ++.
Включают:
- загрузчик изображений (JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC);
- средство записи изображений (PNG, TGA, BMP);
- изменение размера картинки;
- растеризатор текста шрифта;
- типизированные контейнеры.
Пример использования:
Как читать и записывать изображения с помощью библиотек stb_image, — пример, состоящий из двух частей: основного использования stb_image и написания оболочки вокруг функций stb_image.
stb — это однофайловые общедоступные (или лицензированные MIT) библиотеки для C / C ++.
Включают:
- загрузчик изображений (JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC);
- средство записи изображений (PNG, TGA, BMP);
- изменение размера картинки;
- растеризатор текста шрифта;
- типизированные контейнеры.
Пример использования:
Как читать и записывать изображения с помощью библиотек stb_image, — пример, состоящий из двух частей: основного использования stb_image и написания оболочки вокруг функций stb_image.
GitHub
GitHub - nothings/stb: stb single-file public domain libraries for C/C++
stb single-file public domain libraries for C/C++. Contribute to nothings/stb development by creating an account on GitHub.
Хорошие инструменты для покрытия кода на С++
Coco — это многоязычный инструмент для покрытия кода. Автоматический инструментарий исходного кода используется для измерения охвата тестов операторов, ветвей и условий.
BullseyeCoverage — это усовершенствованный инструмент покрытия кода C ++, используемый для улучшения качества программного обеспечения.
Parasoft CPP test — хороший инструмент для различного анализа, включая покрытие кода и статический анализ.
Coco — это многоязычный инструмент для покрытия кода. Автоматический инструментарий исходного кода используется для измерения охвата тестов операторов, ветвей и условий.
BullseyeCoverage — это усовершенствованный инструмент покрытия кода C ++, используемый для улучшения качества программного обеспечения.
Parasoft CPP test — хороший инструмент для различного анализа, включая покрытие кода и статический анализ.
www.qt.io
Coco: The Code Coverage Analysis Tool for Embedded Devices
Coco helps improve code quality and achieve code coverage for your Qt projects and embedded devices. Get accurate analysis and usage intelligence.
Что выведет этот код?
#include <iostream> int main(int argc, char **argv) { std::cout << 25u - 50; return 0; }
#include <iostream> int main(int argc, char **argv) { std::cout << 25u - 50; return 0; }
Anonymous Poll
17%
-25
8%
25
76%
4294967271
Ответ: 4294967271, предполагая 32-битные целые числа.
Почему так происходит?
Существует иерархия: long double, double, float, unsigned long int, long int, unsigned int, int. И когда два операнда определены как 25u (unsigned int) и 50 (int), 50 также будет интерпретироваться как беззнаковое целое число, то есть 50u.
Кроме того, результат операции также будет иметь тип операндов. Следовательно, результат 25u - 50u и сам является беззнаковым целым числом. Таким образом, результат -25 преобразуется в 4294967271.
Почему так происходит?
Существует иерархия: long double, double, float, unsigned long int, long int, unsigned int, int. И когда два операнда определены как 25u (unsigned int) и 50 (int), 50 также будет интерпретироваться как беззнаковое целое число, то есть 50u.
Кроме того, результат операции также будет иметь тип операндов. Следовательно, результат 25u - 50u и сам является беззнаковым целым числом. Таким образом, результат -25 преобразуется в 4294967271.
Виртуальный конструктор: что он собой представляет?
Anonymous Poll
9%
Специальный метод класса, который предназначен для инициализации элементов класса.
27%
Специальный метод класса, который обеспечивается инициализацию объекта производного класса.
64%
Ни одно из перечисленного не является верным.