Rico's Nerd Cluster

「离开世界之前 一切都是过程」

C++ - , Functions

minmax_element, min_element, reduce, transform, numeric

Introduction In this article, we will explore two important STL libraries, <algorithm>, <numeric>. In <algorithm>, we have: Partitioning algorithms: Placing the n...

C++ - Sizing and Type Conversion

Memory Alignment, Sizeof, Integral Promotion

Memory Alignment C++ struct / class does memory alignment. Here’s an illustrative example: 1 2 3 4 5 struct LocalizationData { float x, y; // Each float is 4 bytes bool r; // bool i...

C++ - Control Flow

switch-case, cpp20 range, DSL

switch-case Like goto, switch-case is a label. Without {}, any variable declared within a switch-case statement has the scope of the entire statement. This will only work with variables that can b...

C++ - Useful Macros

Why do we still need macros for C++? Please click in and take a look!

Introduction Macros are string substitution for code. It happens during the preprocessing phase. It is generally not encouraged in c++ nowadays. However, there are still applications where it coul...

C++ - Lvalue and Rvalue Reference

Reference Lifetime

Reference Lifetime const lvalue reference Simply Extends the Lifetime of A Temp. No copy constructor is called when the temp object is passed in const lvalue reference as a class attribute DO...

C++ - Operators

Basic Operators

Basic Operators a == b == c doesn’t do what you want. Do (a == b && b == c) instead. It’s equivalent to: 1 2 3 int a = 5, b = 5, c = 5; bool res = a == b; res = res == c;

C++ - Bit Operations

A Mumbo Jumbo List About Bit and Byte Operations

Basic Bitwise operations Setting a specific bit to 1. 1 2 uchar desc_byte = 0; desc_byte |= (1 << NUM);

C++ - Erase Remove

An efficient in-place way to remove elements in a container

Introduction It’s a common task to remove items in a sequential container that fits a criteria, like an array, vector, queue, etc. For this scenario in C++, it’s advised to use the erase-remove id...

C++ - Datatypes

std::optional, structural binding, iostream, namespace, union, std::variant, std::type_index, std::any

POD Types char or unsigned char is 1 byte float, int, are usually 4 bytes (32 bits) on a 64 bit machine double is 8 bytes (64 bits) long double is 8, or even 16 bytes Common Bugs Ob...

Deep Learning - Designing Machine Learning Systems Notes

Machine learning is to learn complex patterns from existing data, and use them to predict on unseen data. MLOps is a set of tools and best practices for bringing ML into production. ML Algorithms a...