随笔分类 - c/c++
摘要:转载:bool型返回值函数,没写return语句的时候返回啥? 因为漏写了一个return语句,g++又没开warning,结果就悲剧了,调用的时候出现了奇怪的现象,于是就测试了一把到底没写return的时候返回什么东西。 #include <iostream> #include <vector>
阅读全文
摘要:深度探索C++对象模型 第一章:关于对象 封装之后的布局成本 C++在布局以及存取时间上主要的额外负担是由virtual引起 1、VIrtual function机制:用以支持一个有效率的“执行期绑定”(runtime binding) 2、virtual base class:用以实现“多次出现在
阅读全文
摘要:####1、decltype介绍 decltype(declare type,声明类型)为C++11 新增的关键字,和auto功能一样,用于在编译期间进行自动类型推导。 auto和decltype关键字都可以自动推导出变量的类型,但他们的用法是有区别的: auto varname = value;
阅读全文
摘要:去除string前面或后面的空白符 // trim from start (construct new string) inline std::string ltrim(const std::string &str) { std::string s(str); s.erase(s.begin(),
阅读全文
摘要:####1、问题引入 在阅读https://github.com/amhndu/SimpleNES源代码中ppu.cpp中发现如下代码 m_bgPage = static_cast<CharacterPage>(!!(ctrl & 0x10)); m_sprPage = static_cast<Ch
阅读全文
摘要:#pragma 指令 #pragma为预处理指令,作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 #p
阅读全文
摘要:#1、下载libzmq-4.3.1 https://github.com/zeromq/libzmq/tags #2、解压并查看 3、编译 使用vs2019对其进行编译,点击libzmq.sln进入工程环境 右击libzmq进行编译生成,但报如下错误 这通常是缺少宏 ZMQ_IOTHREAD_POL
阅读全文
摘要:#1、下载protobuf3.8.0 https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0 #2、准备工作 解压文件并在同级目录建立install文件夹,用作编译完成后方include ,lib等文件 #3、编译工作 使用VS
阅读全文
摘要:c++ boost库官网 https://www.boost.org/ 官网最新版文档说明 https://www.boost.org/doc/libs/1_70_0/ Boost库是一个可移植、提供源代码的C库,作为标准库的后备,是C标准化进程的开发引擎之一,是为C语言标准库提供扩展的一些C程序库
阅读全文
摘要:#一、安装编译BOOST C++libary 1、安装Boost库 官网下载:https://www.boost.org/users/history/version_1_70_0.html 据说低于1.7.0的版本在vs2019中支持不完善,编译或运行时发生不可预料的bug 2、下载好后,使用VS
阅读全文
摘要:由于图片过大,可打开新标签页查看 若上述还未满足编码要求:可查看在线版的google C++标准文档,或者 [google C++ PDF文档](https://pan.baidu.com/s/1YQNa2ZQLJ-nxMnHDHr9ajQ 提取码:1024 )
阅读全文
摘要:要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行,迭代器是一个变量,相当于容器和操作容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类型。 迭代器按照定义方式分为以下四种: 正向迭代器,定义方式: 1. 容
阅读全文
摘要:容器(container)用于存放数据的类模板。可变长数组、链表、平衡二叉树等数据结构在STL中都被实现为容器。 在使用容器时,即将容器类模型实例化为容器类,会指明容器中存放的元素是什么类型。 容器可以分为两大类: 顺序容器 和 关联容器 顺序容器 顺序容器有 可变长动态数组vector、双端队列d
阅读全文
摘要:今天来看下C++中的auto和decltype两个关键字 + auto关键字定义变量,编译器会自动判断变量的类型 举个栗子: 有时,变量的类型名特别长,使用 auto 就会很方便。例如: 编译器会自动识别出i的类型为map ::iterator + decltype关键字可以用于求表达式的类型。 举
阅读全文
摘要:使用STL时,往往会大量用到函数对象,为此要编写很多函数对象类。而有的函数对象类只用定义一个对象,而且这个对象也只使用一次,那编写这样一个函数对象就很浪费了。而且有时这定义函数对象类的地方和使用函数对象的地方很远,不方便查看。 那对于使用一次的函数对象类,能不能直接在使用它的地方定义呢?lambda
阅读全文
摘要:在确保new动态分配的内存空间在使用结束之后,释放是一件麻烦事。C++11模板库的头文件中定义的智能指针,即shared_ptr模板,就是用来解决这个问题的。 它是将new运算符返回的指针p交给一个shared_ptr对象“托管”,就不用担心要在哪里写delete p语句 实际根本不需要编写这条语句
阅读全文
摘要:C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast和dynamic_cast,当然C++为保持与C的兼容,也保留了C语法中强制类型转换运算符的写法。 C++引入新的强制类型转换机制,主要为是为克服C语言强制
阅读全文
摘要:获取文件夹中的文件,用到过很多次,每次用的时候都要去查下,很烦,所以想自己写下,当然,借鉴了很多其他大佬的博客 主要实现的函数,如下: 1 void getFiles( string path, vector<string>& files ) 2 { 3 //文件句柄 4 long hFile =
阅读全文