C++
文章平均质量分 89
arize
圣雄肝帝
展开
-
C/C++>总目录
—nullptr,auto,范围for,lambda表达式,列表初始化,右值引用—thread 多线程—mutex 互斥锁—regex 正则表达式—chrono,call_once,=delete,__declspec(dllimport) 时间相关,只调用一次关键字,禁用函数,从dll导入到文件中—tuple,get 元组及其访问—...原创 2020-01-10 20:05:43 · 253 阅读 · 0 评论 -
小技术>C++实用的编程习惯
小技术>C++实用的编程习惯原创 2019-08-20 16:30:08 · 107 阅读 · 0 评论 -
C/C++---->数组与指针
经常使用STL导致数组与指针都陌生了,复习总结一下C/C++里指针确实更高效了,但是多了指针就多了一半的类型,也更复杂了数组数组的创建type_t arr_name[const_n];//type_t指数组的元素类型,const_n指常量表达式int arr[10];//is ok数组的初始化int arr1[10];//不进行初始化,存放未知值int arr2[10]={1};//进行初始化,则未进行初始化位置初始化为0int arr3[]={1,2,3,4,5};.原创 2020-10-26 20:40:03 · 116 阅读 · 0 评论 -
C/C++,对字符串的输入与输出操作
C/C++可以修改的字符串,当然是char ch[1024];这样的字符数组啦scanf/printfscanf(const char *,…);遇到空格/回车/TAB会停止输入,需要注意scanf是不安全的,对字符串数组进行输入时要确保知道输入大小再来写#include<stdio.h>char ch[100];scanf("%s",ch);printf("%s\n",ch);sscanf(const char* str,const char* format,….原创 2020-10-26 14:41:07 · 677 阅读 · 0 评论 -
C/C++--->结构体内存对齐详解
对齐规则(1) 第一个成员在与结构体变量偏移为0的地址处.(2) 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数:编译器默认的一个对齐数与该成员大小的较小值(vs中默认值为8,Linux中默认值为4)。(3) 结构体总大小为最大对齐数的整数倍。最大对齐数:结构体的每个成员变量都有一个对齐数(该类型的大小),取最大。(4) 如果嵌套了结构体的情况,嵌套的结构体对齐到自己成员最大对齐数的整数倍,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。#include.原创 2020-10-22 20:04:12 · 427 阅读 · 0 评论 -
log日志
开发版本需要调试信息,线上版本是不允许有调试信息的,日志信息就需要开关功能了变参宏#define LOG(frm,args...){\ printf("[d%:s%]",__FILE__,__LINE__);\ printf(frm,##args);\ printf("\n");\}开关功能1.通过标记方式 2.条件式编译在编译的时候,-D就是#define,更加方便的调试...原创 2020-10-21 20:59:30 · 170 阅读 · 0 评论 -
C/C++---->堆上的内存管理(动态内存管理),new/delete,malloc/free,以及其区别
C++动态内存管理方式1>C语言的动态内存管理方式在C++中适用,不过一些情况会无法满足2>new/delete操作内置类型1.管理对象(1)new对象int * ptr1 = new int;//动态申请int类型的空间int * ptr2 = new int(10);//动态申请int类型的空间,并初始化为10.(2)delete对象delete ptr1;2.管理对象数组(1)new数组//动态申请3个int类型的空间int * ptr = new int[3]原创 2020-10-19 11:32:59 · 220 阅读 · 0 评论 -
C++__指针和引用的区别
指针和引用的区别1.指针有自己的空间,而引用只是一个别名;2.sizeof(指针)大小为4/8,sizeof(引用)大小为引用对象的大小;3.有空指针没有空引用,引用在定义时必须初始化;4.++指针是地址+1,++引用是引用实体自加一;5.指针的使用需要解引用;6.引用的底层实现是指针;7.指针的 指向对象可以改变,引用不可以;8.有const指针,没有const引用(即不存在引用常量,但是常量引用是存在的);(引用的指向本来就是不可变的);9.如果返回动态分配的对象或者内存,应使用指针,原创 2020-10-09 20:50:35 · 123 阅读 · 0 评论 -
C++_智能指针,shared_ptr,unique_ptr,weak_ptr,循环引用及实例
智能指针主要用于管理堆上分配的内存,它将一个普通指针封装为一个栈对象,当栈的生命周期结束后,会在析构函数中释放申请的内存,从而防止内存泄漏。(RAII技术)#include<memory>shared_ptrC++11中常用得到智能指针为shared_ptr,它采用引用计数的方式记录当前内存资源被多少个指针使用,只有当引用计数为0时才会释放内存资源。#include<memory>shared_ptr<int> p=make_shared<int>原创 2020-10-09 10:28:29 · 429 阅读 · 0 评论 -
C/C++>库函数,sprintf
sprintf\color{blue}{sprintf}sprintf,字符串的格式化原创 2020-02-10 11:35:18 · 362 阅读 · 0 评论 -
C++>friend
友元类\color{green}{友元类}友元类 B是A的友元类则B可以访问A的任何成员。如下在TV.h中声明TV有友元类Tele#pragma onceclass TV{public: friend class Tele;private: static int a;};Tele.h如下:#pragma once#include "TV.h"class Te...原创 2020-01-21 16:03:19 · 104 阅读 · 0 评论 -
C++>static
修饰类成员\color{green}{修饰类成员}修饰类成员 则变为静态成员变量,为该类的所有对象所共享,一定要在类外进行定义定义(否则会报链接错误Link2001)。...原创 2020-01-21 15:39:16 · 210 阅读 · 0 评论 -
C++11>线程相关操作,及库函数
ThreadPoolstd::this_thresd::sleep_for()当前线程睡眠…secondstd::this_thread::yiedl当前线程睡眠,等待其他线程完成再执行原创 2020-01-20 15:17:21 · 176 阅读 · 0 评论 -
C++11>可变模板参数
可变模板参数#include <iostream>//打印可变模板传入参数个数template <class... T>void f1(T...args) { std::cout << sizeof...(args) << std::endl;}//////////////展开参数包//1.递归函数 方式展开参数包//...原创 2020-01-20 13:54:44 · 159 阅读 · 0 评论 -
C++>typedef,typename
typedef,声明存在类型的别名typename,不仅可以在声明模板时用到,它还能告诉编译器一个名称是类型而不是变量。原创 2020-01-20 11:56:40 · 152 阅读 · 0 评论 -
C/C++>线程池
线程池,更加合理规范的使用线程。原创 2020-01-18 15:36:11 · 245 阅读 · 0 评论 -
C++>类型转换相关问题
int与string\color{blue}{int与string}int与stringto_string函数c++11标准增加了全局函数std::to_string:string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (u...原创 2020-01-18 11:50:16 · 438 阅读 · 0 评论 -
C/C++>time.h
关于时间操作的标注库localtime()原创 2020-01-18 11:19:06 · 205 阅读 · 0 评论 -
C++11>future,promise
future// promise example#include <iostream> // std::cout#include <functional> // std::ref#include <thread> // std::thread#include <future> // ...原创 2020-01-18 10:36:01 · 126 阅读 · 0 评论 -
C++11>仿函数 std::function、std::bind
std::fuction,通用多态的函数封装器,是一个函数模板类std::bind,函数的转发调用包装器,是一个函数模板原创 2020-01-10 14:42:41 · 777 阅读 · 0 评论 -
C++11>tuple(元组),get
std::tuple是类似pair的模板,可以有任意数量并且类型不同的成员(编译期间确定),在内存中这些成员是连续储存的,常用于一个函数返回多个值。原创 2020-01-07 16:34:54 · 1793 阅读 · 0 评论 -
C++11>chrono,call_once,= delete
C++11::<chrono>原创 2019-11-25 17:26:43 · 124 阅读 · 0 评论 -
C++11>std::regex
在程序语言中引入正则表达式,可以完成以下功能。测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码或一个身份证号码。这称为数据有效性验证。替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后全部将其删除,或替换为其他文字。根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。似乎有个印象regex还可以用来序列化...原创 2019-11-15 15:28:41 · 1301 阅读 · 0 评论 -
C++11>mutex
mutex:互斥锁自解锁:Lock_guard()它是与mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。Lock_guard()参考:https://blog.csdn.net/xiaoyafang123/article/details/54137611...原创 2019-11-08 19:49:02 · 188 阅读 · 0 评论 -
C++11>thread(线程)
#include <iostream>#include <thread>#include <mutex>using namespace std;unsigned long sum = 0L;mutex mu;void fun(size_t num){ //lock_guard<mutex> lock(mu); //使用自解锁就可以...原创 2019-11-08 17:23:02 · 128 阅读 · 0 评论 -
C++>STL分类,list,deque与vector的比较
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。list就是数...原创 2019-08-17 21:22:14 · 238 阅读 · 0 评论 -
C++>vector,初始化,迭代器,增删查改,杨辉三角,只出现一次的数字
C++>vector,初始化,迭代器,增删查改,杨辉三角,只出现一次的数字原创 2019-08-17 17:40:23 · 743 阅读 · 0 评论 -
C++>string,string模拟实现
模拟实现class string{public: //字符串构造 string(const char *str = "") { if (nullptr == str)//若传入空指针报错 { assert(false); return; } _size = strlen(str) + 1; _capacity = _size; _str = new ...原创 2019-08-17 12:08:58 · 133 阅读 · 0 评论 -
C/C++>类型转换,隐式类型转换,显示类型转换,static_cast,reinterpret_cast,const_cast,dynamic_cast
C/C++>类型转换,隐式类型转换,显示类型转换,static_cast,reinterpret_cast,const_cast,dynamic_cast原创 2019-08-16 17:38:34 · 264 阅读 · 0 评论 -
C/C++>const,extern
C/C++>const,extern原创 2019-08-20 19:55:42 · 532 阅读 · 0 评论 -
C++>类与对象,类的初始化,类的访问及封装,类的实例化,类的大小,类的6个默认构造函数,构造函数,运算符重载,类与友元,内部类,this指针
C++>类与对象,类的初始化,类的访问及封装,类的实例化,类的大小,类的6个默认构造函数,构造函数,运算符重载,类与友元,内部类,this指针原创 2019-08-02 17:37:23 · 277 阅读 · 0 评论 -
C++>多态,强制多态,参数类型多态,重载多态,包含多态(运行时多态),联编(早期联编,滞后联编),虚函数,虚函数重写(覆盖),函数重载、覆盖、隐藏的比较,抽象类,虚函数表。),)
C++>多态,强制多态,参数类型多态,重载多态,包含多态(运行时多态),联编(早期联编,滞后联编),虚函数,虚函数重写(覆盖),函数重载、覆盖、隐藏的比较,抽象类,虚函数表。),)原创 2019-07-27 15:36:47 · 2389 阅读 · 3 评论 -
C/C++>内存管理,内存区域划分,数据的储存处理,内置数据的储存,大/小端模式(储存),判断大/端模式
C/C++>内存管理,内存区域划分,数据的储存处理,C++动态内存管理方式,定位new表达式,malloc/free与new/delete的对比,内置数据的储存,大/小端模式(储存),判断大/端模式原创 2019-08-05 13:56:17 · 329 阅读 · 0 评论 -
C/C++>自定义类型,结构体,结构体传参,结构体成员访问,->,.,结构体内存对齐,位段,枚举,联合体
C/C++>自定义类型,结构体,结构体传参,结构体成员访问,->,.,结构体内存对齐,位段,枚举,联合体原创 2019-07-30 21:02:14 · 343 阅读 · 0 评论 -
C++>继承,继承方式及其比较,子类和父类对象指针,派生类的默认成员函数,虚继承,继承与友元,继承与静态成员
C++>继承,继承方式及其比较,子类和父类对象指针,派生类的默认成员函数,虚继承,继承与友元,继承与静态成员,赋值兼容原创 2019-07-24 15:58:05 · 1293 阅读 · 0 评论 -
C++>关联式容器,map,set,multimap,multiset的使用方法
C++>关联式容器,map,set,multimap,multiset的使用方法原创 2019-08-17 23:23:34 · 269 阅读 · 0 评论 -
C++/C>补充知识点,数组,数组传参,二维数组传参打印三种发方法,正则表达式
C>补充知识点,数组,数组传参,正则表达式原创 2019-09-11 10:15:03 · 388 阅读 · 0 评论 -
C++>并联式容器map,set,multimap,multidetset的底层实现
C++>并联式容器map,set,multimap,multidetset的底层实现原创 2019-08-31 11:04:39 · 1199 阅读 · 0 评论 -
C++>C++11,nullptr,范围for,右值引用,lambda表达式
nullptrnullptr,它被称为Null指针常数及其提高类型安全性和解决不明确的情况与现有实现相关的空指针常量不同NULL不是C++中的关键字。它是标准库标头中定义的标识符。不能用NULL而不包括一些标准库头,NULL可能被定义为字面常量0,或者被定义为无类型指针(void*)的常量。列表初始化C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的...原创 2019-09-03 23:05:53 · 265 阅读 · 0 评论