📖 Guide

C++ — Complete Reference

Comprehensive C++ cheat sheet covering STL containers, OOP, templates, smart pointers, and modern C++ features.

104 commands across 12 categories

Basics

CommandDescription
#include <iostream>
Include I/O stream library
int main() { return 0; }
Program entry point
std::cout << "Hello" << std::endl;
Print to stdout
std::cin >> x;
Read input from stdin
using namespace std;
Use std namespace (avoid in headers)
auto x = 42;
Type inference — compiler deduces the type (C++11)
const int MAX = 100;
Compile-time or runtime constant
constexpr int SQ = 5 * 5;
Guaranteed compile-time constant (C++11)
int& ref = x;
Reference — alias for another variable

Strings

CommandDescription
#include <string>
Include string library
std::string s = "hello";
Declare a std::string
s.length() s.size()
Get string length
s.substr(pos, len)
e.g. "hello".substr(1, 3) // "ell"
Extract substring
s.find("sub")
Find substring position (string::npos if not found)
s.append(" world") s += " world"
Append to string
s.c_str()
Get C-style null-terminated char pointer
std::to_string(42)
Convert number to string
std::stoi(s) std::stod(s)
Parse string to int or double
s.empty()
Check if string is empty

Containers (vector/map/set)

CommandDescription
std::vector<int> v = {1, 2, 3};
Dynamic array
v.push_back(4);
Add element to end of vector
v.pop_back();
Remove last element
v.size() v.empty()
Get size / check if empty
v[i] v.at(i)
Access element (at() throws on out-of-range)
std::map<std::string, int> m;
Ordered key-value map (red-black tree)
m["key"] = 42;
Insert or update map entry
m.count("key") m.find("key")
Check existence / get iterator
std::unordered_map<K, V>
Hash map — O(1) average lookup (C++11)
std::set<int> s = {3, 1, 2};
Ordered unique-element set

Iterators

CommandDescription
v.begin() v.end()
Iterator to first / past-the-end element
for (auto it = v.begin(); it != v.end(); ++it)
Classic iterator loop
for (auto& elem : v) { }
Range-based for loop (C++11)
*it
Dereference iterator to get value
std::advance(it, n)
Move iterator forward by n positions
std::next(it) std::prev(it)
Get iterator to next/previous element (C++11)
v.rbegin() v.rend()
Reverse iterators
std::distance(first, last)
Count elements between two iterators

Classes & OOP

CommandDescription
class Name { public: ... private: ... };
Declare a class with access specifiers
Name obj; Name obj(args);
Create object on stack
Name(int x) : x_(x) { }
Constructor with initializer list
~Name() { }
Destructor — called when object is destroyed
class Child : public Parent { };
Public inheritance
virtual void method() = 0;
Pure virtual method (makes class abstract)
void method() override;
Override virtual method (C++11, catches errors)
friend class Other;
Grant another class access to private members
static int count;
Static member — shared across all instances
explicit Name(int x);
Prevent implicit conversions in constructor

Templates

CommandDescription
template <typename T>\nT max(T a, T b) { return a > b ? a : b; }
Function template
template <typename T>\nclass Stack { T data[100]; };
Class template
max<int>(3, 5)
Explicit template instantiation
template <typename T, int N>
Non-type template parameter
template <>\nclass Stack<bool> { };
Template specialization
template <typename... Args>\nvoid log(Args... args)
Variadic template (C++11)
template <typename T>\nconcept Numeric = std::integral<T> || std::floating_point<T>;
e.g. template <Numeric T> T add(T a, T b);
Concept constraint (C++20)

Smart Pointers

CommandDescription
#include <memory>
Include smart pointer library
auto p = std::make_unique<Type>(args);
Create unique_ptr (exclusive ownership, C++14)
auto p = std::make_shared<Type>(args);
Create shared_ptr (reference counted)
std::weak_ptr<Type> w = shared;
Weak reference — doesn't prevent destruction
p.get()
Get raw pointer without releasing ownership
p.reset();
Release ownership and destroy object
std::move(unique_p)
Transfer unique_ptr ownership
if (auto s = w.lock()) { }
Try to get shared_ptr from weak_ptr

Error Handling

CommandDescription
try { } catch (const std::exception& e) { }
Catch exceptions by const reference
throw std::runtime_error("msg");
Throw a runtime error
e.what()
Get exception message string
catch (...) { }
Catch any exception type
noexcept
e.g. void safe() noexcept { }
Declare function won't throw (C++11)
std::optional<T>
e.g. std::optional<int> find(int id);
Value that may or may not exist (C++17)
static_assert(cond, "msg");
Compile-time assertion (C++11)

File I/O

CommandDescription
#include <fstream>
Include file stream library
std::ifstream in("file.txt");
Open file for reading
std::ofstream out("file.txt");
Open file for writing (creates/overwrites)
std::getline(in, line);
Read a full line into string
out << "text" << std::endl;
Write to file using stream operator
in.is_open()
Check if file was opened successfully
in.close();
Explicitly close file (auto-closes on destruction)
while (std::getline(in, line)) { }
Read file line by line

STL Algorithms

CommandDescription
#include <algorithm>
Include algorithms library
std::sort(v.begin(), v.end());
Sort a container in ascending order
std::sort(v.begin(), v.end(), cmp);
Sort with custom comparator
std::find(v.begin(), v.end(), val);
Find first occurrence of value
std::count(v.begin(), v.end(), val);
Count occurrences of value
std::reverse(v.begin(), v.end());
Reverse container in place
std::accumulate(v.begin(), v.end(), 0);
e.g. #include <numeric>
Sum all elements (numeric header)
std::transform(in.begin(), in.end(), out.begin(), fn);
Apply function and store results
std::any_of(v.begin(), v.end(), pred);
Check if any element satisfies predicate
std::min_element(v.begin(), v.end());
Iterator to smallest element

Modern C++ (11/14/17/20)

CommandDescription
auto [x, y] = pair;
e.g. auto [key, val] = *map.begin();
Structured bindings (C++17)
if (auto it = m.find(k); it != m.end())
If with initializer (C++17)
std::variant<int, std::string> v;
Type-safe union (C++17)
std::any a = 42;
Type-erased container for any value (C++17)
std::string_view sv = "hello";
Non-owning string reference (C++17)
constexpr if (cond) { }
Compile-time branching (C++17)
std::ranges::sort(v);
Ranges — cleaner algorithm syntax (C++20)
auto result = v | std::views::filter(pred) | std::views::transform(fn);
Lazy range views with piping (C++20)
co_await co_yield co_return
Coroutine keywords (C++20)

Lambda Expressions

CommandDescription
[](int x) { return x * 2; }
Basic lambda — no captures
[&](int x) { return x + y; }
Capture all by reference
[=](int x) { return x + y; }
Capture all by value (copy)
[&x, y]() { }
Capture x by reference, y by value
[](int x) -> double { return x / 2.0; }
Lambda with explicit return type
auto fn = [](auto x) { return x * x; };
Generic lambda (C++14)
[x = std::move(ptr)]() { }
Init capture — move into lambda (C++14)
[]<typename T>(T x) { return x; }
Templated lambda (C++20)

More Guides

🌿
Git Commands
Complete Git command reference — from basics to advanced workflows. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference — modes, motions, editing, search, and advanced features.
🐳
Docker Commands
Complete Docker & Docker Compose command reference — containers, images, volumes, networks, and orchestration.
🔤
Regex Reference
Complete regular expression reference — syntax, patterns, quantifiers, groups, lookaheads, and common recipes.
🐧
Linux Commands
Complete Linux/Bash command reference — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference — pods, deployments, services, configmaps, and cluster management.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, file I/O, comprehensions, and common patterns.
🗃️
SQL Reference
Complete SQL reference — queries, joins, aggregation, subqueries, indexes, and database management.
🌐
Nginx Reference
Complete Nginx configuration reference — server blocks, locations, proxying, SSL, load balancing, and caching.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, and security hardening.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, and universal concurrency patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, functions, concurrency, error handling, and common patterns.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, and ad-hoc commands.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
🎨
CSS
Complete CSS reference — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
📄
HTML
Complete HTML reference — document structure, text content, forms, media, semantic elements, accessibility, and more.
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
💻
Bash
Complete Bash reference — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
🦀
Rust
Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, concurrency, and more.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, and extensions.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, multi-line strings, and common patterns.
🌐
Curl
Curl command-line reference for HTTP requests, authentication, file transfers, debugging, and common API patterns.
Cron
Cron scheduling reference covering syntax, field values, crontab management, and common schedule patterns.
🖥️
Tmux
Terminal multiplexer for managing multiple sessions, windows, and panes from a single terminal.
🔧
Awk
Powerful text processing language for pattern scanning, data extraction, and report generation.
✂️
Sed
Stream editor for filtering and transforming text, line by line.
🔍
Find
Search for files and directories in a directory hierarchy with powerful filtering options.
🔎
Grep
Search text using patterns. Filter lines from files, command output, or streams with regular expressions.
🐘
PHP
Complete PHP cheat sheet covering syntax, OOP, arrays, PDO, and modern PHP 8.x features.
⚙️
C
Complete C programming cheat sheet covering syntax, pointers, memory management, and standard library.

📖 Free, searchable command reference. Bookmark this page for quick access.