logo
💻 编程语言

C++

C++ Cheat Sheet - 快速参考指南,收录常用语法、命令与实践。

📂 分类 · 编程语言🧭 Markdown 速查🏷️ 2 个标签
#cpp#systems
向下滚动查看内容
返回全部 Cheat Sheets

Getting Started

hello.cpp
CPP
滚动查看更多
#include <iostream>

int main() {
    std::cout << "Hello CheatSheets\n";
    return 0;
}

Compiling and running

SHELL
滚动查看更多
$ g++ hello.cpp -o hello
$ ./hello
Hello CheatSheets
Variables
CPP
滚动查看更多
int number = 5;       // Integer
float f = 0.95;       // Floating number
double PI = 3.14159;  // Floating number
char yes = 'Y';       // Character
std::string s = "ME"; // String (text)
bool isRight = true;  // Boolean

// Constants
const float RATE = 0.8;

CPP
滚动查看更多
int age {25};         // Since C++11
std::cout << age;     // Print 25
Primitive Data Types
Data TypeSizeRange
int4 bytes-2^31^ ^to^ 2^31^-1
float4 bytesN/A
double8 bytesN/A
char1 byte-128 ^to^ 127
bool1 bytetrue / false
voidN/AN/A
wchar_t2 ^or^ 4 bytes1 wide character

{.show-header}

User Input
CPP
滚动查看更多
int num;

std::cout << "Type a number: ";
std::cin >> num;

std::cout << "You entered " << num;
Swap
CPP
滚动查看更多
int a = 5, b = 10;
std::swap(a, b);

// Outputs: a=10, b=5
std::cout << "a=" << a << ", b=" << b;
Comments
CPP
滚动查看更多
// A single one line comment in C++

/* This is a multiple line comment
   in C++ */
If statement
CPP
滚动查看更多
if (a == 10) {
    // do something
}

See: Conditionals

Loops
CPP
滚动查看更多
for (int i = 0; i < 10; i++) {
    std::cout << i << "\n";
}

See: Loops

Functions
CPP
滚动查看更多
#include <iostream>

void hello(); // Declaring

int main() {  // main function
    hello();    // Calling
}

void hello() { // Defining
    std::cout << "Hello CheatSheets!\n";
}

See: Functions

References
CPP
滚动查看更多
int i = 1;
int& ri = i; // ri is a reference to i

ri = 2; // i is now changed to 2
std::cout << "i=" << i;

i = 3;   // i is now changed to 3
std::cout << "ri=" << ri;

ri and i refer to the same memory location.

Namespaces
CPP
滚动查看更多
#include <iostream>
namespace ns1 {int val(){return 5;}}
int main()
{
    std::cout << ns1::val();
}

CPP
滚动查看更多
#include <iostream>
namespace ns1 {int val(){return 5;}}
using namespace ns1;
using namespace std;
int main()
{
    cout << val();
}

Namespaces allow global identifiers under a name

C++ Arrays

Declaration
CPP
滚动查看更多
std::array<int, 3> marks; // Definition
marks[0] = 92;
marks[1] = 97;
marks[2] = 98;

// Define and initialize
std::array<int, 3> = {92, 97, 98};

// With empty members
std::array<int, 3> marks = {92, 97};
std::cout << marks[2]; // Outputs: 0
Manipulation
CPP
滚动查看更多
┌─────┬─────┬─────┬─────┬─────┬─────┐
| 92  | 97  | 98  | 99  | 98  | 94  |
└─────┴─────┴─────┴─────┴─────┴─────┘
   0     1     2     3     4     5

CPP
滚动查看更多
std::array<int, 6> marks = {92, 97, 98, 99, 98, 94};

// Print first element
std::cout << marks[0];

// Change 2nd element to 99
marks[1] = 99;

// Take input from the user
std::cin >> marks[2];
Displaying
CPP
滚动查看更多
char ref[5] = {'R', 'e', 'f'};

// Range based for loop
for (const int &n : ref) {
    std::cout << std::string(1, n);
}

// Traditional for loop
for (int i = 0; i < sizeof(ref); ++i) {
    std::cout << ref[i];
}
Multidimensional
CPP
滚动查看更多
     j0   j1   j2   j3   j4   j5
   ┌────┬────┬────┬────┬────┬────┐
i0 | 1  | 2  | 3  | 4  | 5  | 6  |
   ├────┼────┼────┼────┼────┼────┤
i1 | 6  | 5  | 4  | 3  | 2  | 1  |
   └────┴────┴────┴────┴────┴────┘

CPP
滚动查看更多
int x[2][6] = {
    {1,2,3,4,5,6}, {6,5,4,3,2,1}
};
for (int i = 0; i < 2; ++i) {
    for (int j = 0; j < 6; ++j) {
        std::cout << x[i][j] << " ";
    }
}
// Outputs: 1 2 3 4 5 6 6 5 4 3 2 1

C++ Conditionals

If Clause
CPP
滚动查看更多
if (a == 10) {
    // do something
}

CPP
滚动查看更多
int number = 16;

if (number % 2 == 0)
{
    std::cout << "even";
}
else
{
    std::cout << "odd";
}

// Outputs: even
Else if Statement
CPP
滚动查看更多
int score = 99;
if (score == 100) {
    std::cout << "Superb";
}
else if (score >= 90) {
    std::cout << "Excellent";
}
else if (score >= 80) {
    std::cout << "Very Good";
}
else if (score >= 70) {
    std::cout << "Good";
}
else if (score >= 60)
    std::cout << "OK";
else
    std::cout << "What?";
Operators

Relational Operators

a == ba is equal to b
a != ba is NOT equal to b
a < ba is less than b
a > ba is greater b
a <= ba is less than or equal to b
a >= ba is greater or equal to b

Assignment Operators

ExampleEquivalent to
a += bAka a = a + b
a -= bAka a = a - b
a *= bAka a = a * b
a /= bAka a = a / b
a %= bAka a = a % b

Logical Operators

ExampleMeaning
exp1 && exp2Both are true (AND)
<code>exp1 || exp2</code>Either is true (OR)
!expexp is false (NOT)

Bitwise Operators

OperatorDescription
a & bBinary AND
<code>a | b</code>Binary OR
a ^ bBinary XOR
~ aBinary One's Complement
a << bBinary Shift Left
a >> bBinary Shift Right
Ternary Operator
CODE
滚动查看更多
           ┌── True ──┐
Result = Condition ? Exp1 : Exp2;
           └───── False ─────┘

CPP
滚动查看更多
int x = 3, y = 5, max;
max = (x > y) ? x : y;

// Outputs: 5
std::cout << max << std::endl;

CPP
滚动查看更多
int x = 3, y = 5, max;
if (x > y) {
    max = x;
} else {
    max = y;
}
// Outputs: 5
std::cout << max << std::endl;
Switch Statement
CPP
滚动查看更多
int num = 2;
switch (num) {
    case 0:
        std::cout << "Zero";
        break;
    case 1:
        std::cout << "One";
        break;
    case 2:
        std::cout << "Two";
        break;
    case 3:
        std::cout << "Three";
        break;
    default:
        std::cout << "What?";
        break;
}

C++ Loops

While
CPP
滚动查看更多
int i = 0;
while (i < 6) {
    std::cout << i++;
}

// Outputs: 012345
Do-while
CPP
滚动查看更多
int i = 1;
do {
    std::cout << i++;
} while (i <= 5);

// Outputs: 12345
Continue statements
CPP
滚动查看更多
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue;
    }
    std::cout << i;
} // Outputs: 13579
Infinite loop
CPP
滚动查看更多
while (true) { // true or 1
    std::cout << "infinite loop";
}

CPP
滚动查看更多
for (;;) {
    std::cout << "infinite loop";
}

CPP
滚动查看更多
for(int i = 1; i > 0; i++) {
    std::cout << "infinite loop";
}
for_each (Since C++11)
CPP
滚动查看更多
#include <iostream>
#include <array>

int main()
{
    auto print = [](int num) { std::cout << num << std::endl; };

    std::array<int, 4> arr = {1, 2, 3, 4};
    std::for_each(arr.begin(), arr.end(), print);
    return 0;
}
Range-based (Since C++11)
CPP
滚动查看更多
for (int n : {1, 2, 3, 4, 5}) {
    std::cout << n << " ";
}
// Outputs: 1 2 3 4 5

CPP
滚动查看更多
std::string hello = "CheatSheets.zip";
for (char c: hello)
{
    std::cout << c << " ";
}
// Outputs: Q u i c k R e f . M E
Break statements
CPP
滚动查看更多
int password, times = 0;
while (password != 1234) {
    if (times++ >= 3) {
        std::cout << "Locked!\n";
        break;
    }
    std::cout << "Password: ";
    std::cin >> password; // input
}
Several variations
CPP
滚动查看更多
for (int i = 0, j = 2; i < 3; i++, j--){
    std::cout << "i=" << i << ",";
    std::cout << "j=" << j << ";";
}
// Outputs: i=0,j=2;i=1,j=1;i=2,j=0;

C++ Functions

Arguments & Returns
CPP
滚动查看更多
#include <iostream>

int add(int a, int b) {
    return a + b;
}

int main() {
    std::cout << add(10, 20);
}

add is a function taking 2 ints and returning int

Overloading
CPP
滚动查看更多
void fun(string a, string b) {
    std::cout << a + " " + b;
}
void fun(string a) {
    std::cout << a;
}
void fun(int a) {
    std::cout << a;
}
Built-in Functions
CPP
滚动查看更多
#include <iostream>
#include <cmath> // import library

int main() {
    // sqrt() is from cmath
    std::cout << sqrt(9);
}

C++ Classes & Objects

Defining a Class
CPP
滚动查看更多
class MyClass {
  public:             // Access specifier
    int myNum;        // Attribute (int variable)
    string myString;  // Attribute (string variable)
};

Creating an Object
CPP
滚动查看更多
MyClass myObj;  // Create an object of MyClass

myObj.myNum = 15;          // Set the value of myNum to 15
myObj.myString = "Hello";  // Set the value of myString to "Hello"

cout << myObj.myNum << endl;         // Output 15
cout << myObj.myString << endl;      // Output "Hello"

Constructors
CPP
滚动查看更多
class MyClass {
  public:
    int myNum;
    string myString;
    MyClass() {  // Constructor
      myNum = 0;
      myString = "";
    }
};

MyClass myObj;  // Create an object of MyClass

cout << myObj.myNum << endl;         // Output 0
cout << myObj.myString << endl;      // Output ""

Destructors
CPP
滚动查看更多
class MyClass {
  public:
    int myNum;
    string myString;
    MyClass() {  // Constructor
      myNum = 0;
      myString = "";
    }
    ~MyClass() {  // Destructor
      cout << "Object destroyed." << endl;
    }
};

MyClass myObj;  // Create an object of MyClass

// Code here...

// Object is destroyed automatically when the program exits the scope


Class Methods
CPP
滚动查看更多
class MyClass {
  public:
    int myNum;
    string myString;
    void myMethod() {  // Method/function defined inside the class
      cout << "Hello World!" << endl;
    }
};

MyClass myObj;  // Create an object of MyClass
myObj.myMethod();  // Call the method
Access Modifiers
CPP
滚动查看更多
class MyClass {
  public:     // Public access specifier
    int x;    // Public attribute
  private:    // Private access specifier
    int y;    // Private attribute
  protected:  // Protected access specifier
    int z;    // Protected attribute
};

MyClass myObj;
myObj.x = 25;  // Allowed (public)
myObj.y = 50;  // Not allowed (private)
myObj.z = 75;  // Not allowed (protected)

Getters and Setters
CPP
滚动查看更多
class MyClass {
  private:
    int myNum;
  public:
    void setMyNum(int num) {  // Setter
      myNum = num;
    }
    int getMyNum() {  // Getter
      return myNum;
    }
};

MyClass myObj;
myObj.setMyNum(15);  // Set the value of myNum to 15
cout << myObj.getMyNum() << endl;  // Output 15

Inheritance
CPP
滚动查看更多
class Vehicle {
  public:
    string brand = "Ford";
    void honk() {
      cout << "Tuut, tuut!" << endl;
    }
};

class Car : public Vehicle {
  public:
    string model = "Mustang";
};

Car myCar;
myCar.honk();  // Output "Tuut, tuut!"
cout << myCar.brand + " " + myCar.model << endl;  // Output "Ford Mustang"

C++ Preprocessor

Includes
CPP
滚动查看更多
#include "iostream"
#include <iostream>
Defines
CPP
滚动查看更多
#define FOO
#define FOO "hello"

#undef FOO
If
CPP
滚动查看更多
#ifdef DEBUG
  console.log('hi');
#elif defined VERBOSE
  ...
#else
  ...
#endif
Error
CPP
滚动查看更多
#if VERSION == 2.0
  #error Unsupported
  #warning Not really supported
#endif
Macro
CPP
滚动查看更多
#define DEG(x) ((x) * 57.29)
Token concat
CPP
滚动查看更多
#define DST(name) name##_s name##_t
DST(object);   #=> object_s object_t;
Stringification
CPP
滚动查看更多
#define STR(name) #name
char * a = STR(object);   #=> char * a = "object";
file and line
CPP
滚动查看更多
#define LOG(msg) console.log(__FILE__, __LINE__, msg)
#=> console.log("file.txt", 3, "hey")

Miscellaneous

Also see

相关 Cheat Sheets

1v1免费职业咨询
logo

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2025 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572