![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Sanzo00
sanzo.top
展开
-
shared_ptr的删除器
new/delete对于对象来说:new操作先分配空间,再执行构造函数。delete操作先执行析构函数,再释放空间。在删除对象数组时,要使用delete[],否则会造成内存泄露,因为对象数组在分配空间的时候,会额外记录数组的长度信息,使用delete[]可以释放数组中所有对象的空间。Deletershared_ptr,在构造或者reset时,可以指定删除器,用于对象的释放,用于自定义的对象数组的空间释放。#include <iostream>#include <原创 2021-05-12 10:44:36 · 2875 阅读 · 0 评论 -
字节序
字节序数据存储有两种方式:大端字节序和小端字节序网络序采用大端,本地存储采用小端大端字节序:数据的高位在地址的低位,从左到右(符合人读数的习惯)小端字节序:数据的高位在地址的高位,从右向左#include <endian.h>(无符号)64字节主机转网络:htobe64(uint64_t data)(无符号)64字节网络转主机:be64toh(uint6...原创 2020-03-11 16:37:33 · 342 阅读 · 0 评论 -
__thread
__thread__thread修饰的变量,在每个线程中都有一份独立实体,每个线程互不干扰,可以修饰全局性且值可能改变的变量#include <iostream>#include <pthread.h>#include <unistd.h>using namespace std;// static __thread int i = 1; // 修饰s...原创 2020-03-06 12:05:16 · 331 阅读 · 0 评论 -
boost::function/bind
boost::function/bindboost::function头文件:<boost/function.hpp>boost::function是一个函数模板,可以代替具有相同返回类型,相同参数和相同参数个数的不同函数,和函数指针有些类似,用于封装函数,定义之后可以多次调用// 简单的例子typedef boost::function<int(int ,int)&g...原创 2020-03-05 10:44:35 · 176 阅读 · 0 评论 -
函数指针
函数指针函数指针指向函数的地址函数指针的定义:函数返回值类型 (* 指针指针变量名) (函数参数列表)# 定义一个指向一个返回值为int,参数为(int,int)的函数指针pint (*p)(int, int)int Max(int a, int b) { return a > b ? a : b;}int main() { int (*p)(int, int); //...原创 2020-03-04 22:02:19 · 164 阅读 · 0 评论 -
explicit关键字
explicit关键字explicit关键字用于修饰只有一个参数的类构造函数,explicit是显式,对应的implicit是隐式的。默认的类构造函数是隐式的。class A {public: A(int x) { // 默认隐式构造 this->x = x; } int x;};A a = 10; // 正确 /* 等价于: A a(10); A temp...原创 2020-02-29 10:38:16 · 148 阅读 · 0 评论