C++
大锅菜~
这个作者很懒,什么都没留下…
展开
-
C++线程池实现
#ifndef __THREAD_POOL_#define __THREAD_POOL_#include<atomic>#include<vector>#include<thread>#include<list>#include<memory>#include<mutex>#include<string>#include<iostream>#include<queue>usin原创 2021-06-11 17:45:35 · 362 阅读 · 0 评论 -
C 格式化输入输出
一、C语言 1)字符串:放在数组中,存储字符串的数组的最后一个元素是\0, 用来标记字符串的结束。空字符不是数字0,它是非打印字符,它的ASCⅡ码值为0。 2)strlen()和sizeof():strlen()计算字符串的长度(不带 \0),sizeof()计算变量在内存中占的字节数。 3)scanf()函数 示例:#include <st...原创 2020-04-03 13:48:00 · 153 阅读 · 0 评论 -
vs2015查看变量在内存中存储
一、调试--》窗口--》内存定义结构体Astruct A { int a; char b; char *c; char d;};int main(){ A * pa = new A(); pa->a = 5; pa->b = 'a'; pa->c = "hello"; pa->d = 'b'; system("pause");...原创 2020-03-20 23:41:45 · 1134 阅读 · 0 评论 -
对结构体中字符数组赋值时,出现表达式必须是可修改的左值的问题。以及strcpy和memcp区别
问题:在C++中为结构体中的字符数组赋值时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。struct A { int a; char b; char c[10]; char d;};int main(){ A aa; aa.a = 5; aa.b = 'a'; aa.c = "hello"; //错误! 字符串数组复制不能用“=”...原创 2020-03-20 22:51:16 · 1383 阅读 · 0 评论 -
C++ volatile关键字详解
1、什么是volatile volatile关键字是一种限定符用来声明一个对象在程序中可以被语句外的东西修改,比如操作系统、硬件或并发执行线程。遇到该关键字,编译器不再对该变量的代码进行优化,不再从寄存器中读取变量的值,而是直接从它所在的内存中读取值,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。下面写个代码测试一下volatile关键字注:VC6.0中一般调试模式...转载 2020-03-10 15:57:54 · 572 阅读 · 0 评论 -
C++中typedef和using
一、typedeftypedef是C/C++语言中保留的关键字,用来定义一种数据类型的别名。ypedef定义的类型的作用域只在该语句的作用域之内typedef经常使用的场景包括以下几种:指定一个简单的别名,避免了书写过长的类型名称 实现一种定长的类型,在跨平台编程的时候尤其重要 使用一种方便阅读的单词来作为别名,方便阅读代码1.1 减少书写类型的长度这一使用方式比较常见的...转载 2020-03-10 15:22:10 · 6220 阅读 · 0 评论 -
C++中虚函数工作原理和(虚)继承类的内存占用大小计算【转】
一、虚函数的工作原理虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,实际...转载 2020-03-05 19:23:31 · 304 阅读 · 0 评论 -
C++中类的(static)静态成员变量与(static)静态成员函数
C++中静态成员变量、静态成员函数1、静态成员变量 -静态成员变量属于整个类所有-静态成员变量的生命期不依赖于任何对象,为程序的生命周期-可以通过类名直接访问公有静态成员变量-所有对象共享类的静态成员变量-可以通过对象名访问公有静态成员变量-静态成员变量需要在类外单独分配空间-静态成员变量在程序内部位于全局数据区...原创 2019-12-30 22:33:24 · 364 阅读 · 0 评论 -
使用iostream 读取本地图片和将图片写会到本地
包含头文件#include <iostream> string strFile = "D:\\pic\\1.jpg"; // 本地图片位置 ifstream in(strFile, ios::in | ios::binary | ios::ate); // 将本地图片读取到输入流 ...原创 2019-11-15 19:14:53 · 674 阅读 · 0 评论 -
string和char *相互转换
1、char *转成string char * pPic = new char[100]; string strPic((char*)pPic , 100);2、char * 转string如果string是最好使用memcpy,这样可以指定拷贝的字符串长度,就算中间遇到0(二进制中很有可能是0),也可以继续拷贝,相比memcpy,strncpy() 就不行了...原创 2019-11-15 19:08:28 · 2185 阅读 · 0 评论 -
C++ 11 Lambda表达式
转自:https://www.cnblogs.com/DswCnblog/p/5629165.htmlC++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-> ret...转载 2019-07-13 15:21:25 · 67 阅读 · 0 评论 -
C++ 类和结构体所占内存大小---转自 https://www.cnblogs.com/-zhangnian/p/6422559.html
1、类所占内存:类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是...转载 2019-04-16 21:25:08 · 345 阅读 · 0 评论 -
字符编码
/*2019--04--16*/1、字符编码(用数字表示字符)ASCII:最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。Unicode:把所有语言都统一到一套编码里。比如:汉字“中”已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的0100...原创 2019-04-16 21:23:22 · 258 阅读 · 0 评论 -
C++回调函数--简单使用
/*2019-04-16*/1、定义:网上定义:回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。详细解释:在模块A在调用模块B(比如.dll)中的函数b(),将自己的一个函数a()(这个函数的地址)作为参数传递给b()。b()在需要的时候,...原创 2019-04-16 21:18:35 · 286 阅读 · 0 评论