关键词
C++
21 篇文章
- 常用模板快排模板 void quick_sort(int q[], int l, int r) { if ( l >= r ) return; int x = q[l + r >> 1], i = l - 1, j = r + 1; while (
- C++ sort排序(从小到大,从大到小)使用 sort() 函数,需要先引入头文件:algorithm。 #include <algorithm>。 sort() 函数的模板: /** * @brief Sort the elements of a sequence. * @in
- C++智能指针智能指针(Smart Point) 传统指针存在的问题 需要手段管理内存。 容易发生内存泄漏(忘记释放或出现异常等)。 释放之后产生野指针。 智能指针 智能指针就是为了解决传统指针存在的问题。 auto_ptr:属于C++98标准,在C++
- C++中的异常异常是一种在程序运行过程中可能会发生的错误。 异常没有被处理,会导致程序终止。 抛出异常 throw 异常信息 捕获异常 try { // 可能会发送异常的代码 } catch ( 异常类型 变量名 ) { // 处理代码 } catch
- C++11、C++14与C++17C++11 auto 可以从初始化表达式中推断出变量的类型,大大简化编程工作。 auto a = 10; a++; cout << a << endl; a = 11; 属于编译器特性,不影响最终的机器码质量,不影响运行效率。 declty
- C++类型转换C语言风格的类型转换符号 (type)expression或type(expression)。 int main() { double a = 1.1; int b = (int) a; int c = int(a); return 0;
- C++模板泛型 泛型,是一种将类型参数化以达到代码复用的技术,C+ +中使用模板来实现泛型。 模板(template) 格式:template <typename/class T>。 也可以指定多个类型,template <typename A, t
- C++运算符重载运算符重载(操作符重载):可以为运算符增加一些新的功能。 class Point { friend Point operator+(const Point &, const Point &); private: int x, y; publ
- C++拷贝构造函数拷贝构造函数的英文:Copy Constructor。 拷贝构造函数是构造函数的一种。 当利用已存在的对象创建一个新对象时(类似于拷贝),就会调用新对象的拷贝构造函数进行初始化。 拷贝构造函数的格式是固定的,接收一个const引用作为参数。
- C++特殊成员静态成员(static) 被static修饰的成员变量/函数。 可以通过对象(对象.静态成员)、对象指针(对象指针->静态成员)、类访问(类名::静态成员)。 静态成员变量 静态成员变量存储在数据段(全局区,类似于全局变量),整个程序运行过
- C++中的多态父类指针、子类指针 父类指针可以指向子类对象,是安全的。(继承方式必须是public) 子类指针指向父类对象是不安全的。 struct A { int a; }; struct B : A { int b; }; int main() {
- C++中的继承与多继承继承 可以让子类拥有父类的所有可访问成员(变量/函数)。 C++没有像Java的基类。 语法 在类名后面写个:再接上父类类名即可。Student : Person struct Person { int id; void run(){ }
- C++命名空间可以用来避免命名冲突。 使用namespace 名字来定义一个命名空间。使用的时候,在全局变量、函数或类前面加上空间名字::即可指定命名空间。 class Person { private: int age; public: void se
- C++中的类类 C++中可以使用struct和class来定义一个类。 struct Person { int age; void run() { // ... } }; class Person1 { int age; void run() { //
- C++内存空间的布局每个应用都有自己独立的内存空间,其内存空间一般都有:代码段(代码区)、数据段(全局区)、栈空间、堆空间。 代码段(代码区) 用于存放代码。 数据段(全局区) 用于存放全局变量等。 栈空间 每调用一个函数,就会给它分配一段连续的栈空间,等函数
- C++ const与引用const 被const修饰的变量不可被修改,在定义的时候,就必须赋值。 如果修改的类、结构体(的指针),其成员已不可以被修改。 struct Date { int year; int month; int day; }; int main
- C++内联函数与表达式内联函数(inline function) 使用inline修饰函数的声明或实现,可以使其变成内联函数。 与宏的区别 #define add(a, b) a + b inline int f_add(int a, int b) { retu
- C、C++混合开发常用关键字 extern "C" #ifndef #ifdef #define #endif #pragma once __cplusplus extern "C" 被extern "C"修饰的代码会按照C语言的方式去编译。 extern
- C++逐行读取文件使用ifstream。 #include <iostream> #include <fstream> using namespace std; int main() { ifstream ifs("test.txt"); // 是否读取成功
- C++默认参数默认参数就是给函数的形参一个缺省值,在调用的时候,可以根据实际情况省略实参。 注意 C++有默认参数,C是没有的。 如果函数同时有声明、实现,默认参数只能放在函数声明中。 默认参数的值可以的常量、全局符号(全局变量、函数名)。 int f(