← all languages

C++

690 problems50 sections📅 2026 curriculum

Learn C++ by typing modern, idiomatic code.

Practice modern C++ by typing it: RAII and smart pointers, templates, move semantics, and STL containers and algorithms. Each snippet is idiomatic C++, and an AI tutor explains every line — why unique_ptr owns and shared_ptr counts, when a move avoids a copy — so the language's power becomes usable while your typing keeps pace.

Progress0 / 690 solved · 0/50 sections
best wpm
0
avg wpm
0
accuracy
0%
runs
0
level
1
rating
1000
Run C++ on your machine
1. Install the toolchain
brew install gcc # or: sudo apt install build-essential
2. Save your code as hello.cpp, then compile & run
g++ -std=c++20 hello.cpp -o hello && ./hello
Official install docs ↗
The first 3 sections are open — sign in for more, or upgrade for everything (English is fully free).Sign in
progress by section
1Fundamentals0/15start →
2Strings In Depth0/15start →
3Values & References0/16start →
4Slices & Arrays0/17Unlock →
5Data structures0/13Unlock →
6Iterators0/20Unlock →
7Traits0/20Unlock →
8Generics0/20Unlock →
9Lifetimes0/20Unlock →
10Closures0/20Unlock →
11Pattern Matching0/20Unlock →
12Error Handling0/20Unlock →
13Option & Result0/20Unlock →
14Conversions0/15Unlock →
15Collection Conversions0/19Unlock →
16Math0/14Unlock →
17Encoding0/22Unlock →
18Random0/20Unlock →
19Data I/O0/18Unlock →
20Linear Algebra0/21Unlock →
21Text Processing0/16Unlock →
22Date & Time0/12Unlock →
23Memory0/12Unlock →
24Modules0/20Unlock →
25Macros0/20Unlock →
26Testing0/20Unlock →
27Algorithms0/8Unlock →
28Sorting Algorithms0/12Unlock →
29Expression Parsing0/6Unlock →
30Idioms0/9Unlock →
31OOP & Traits0/8Unlock →
32Trait Objects0/14Unlock →
33Design Patterns0/14Unlock →
34Async0/3Unlock →
35File I/O0/6Unlock →
36Filesystem0/18Unlock →
37Networking0/16Unlock →
38Concurrency0/7Unlock →
39Unsafe & FFI0/14Unlock →
40Commands0/14Unlock →
41Array0/10Unlock →
42Binary0/5Unlock →
43String0/10Unlock →
44Matrix0/4Unlock →
45Interval0/5Unlock →
46Linked List0/6Unlock →
47Tree0/14Unlock →
48Graph0/8Unlock →
49Heap0/3Unlock →
50Dynamic Programming0/11Unlock →