
c++
空腹熊猫
普通后台开发,喜欢看源码,对机器学习深度学习感兴趣
展开
-
c++ 对结构体 memset 导致析构函数core
最近验证了一段代码 一个struct 里面有char 数组,有string,对整个结构体用memset初始化,然后析构时core了。代码如下: #include <iostream> #include <string.h> using namespace std; struct A { char arr[16]; string strr; A () { memset(arr, 0x0, sizeof(arr)); } };原创 2020-08-03 17:08:29 · 951 阅读 · 0 评论 -
c++ 性能优化之字符串(上)
字符串很麻烦 c++不同标准的编译器在std::string 的实现上有区别,未必符合标准 字符串是动态分配的 字符串在表达式中,会涉及到复制操作 字符串的动态分配 C的字符数组是定长的,c++字符串是动态分配的,耗时耗力。 c++字符串内部缓冲区大小固定,当某个操作使其长度变长超出缓冲区大小时,会从内存分配一块新的缓冲区,并将字符串复制到该缓冲区。 为了避免多次申请缓冲区,std::...原创 2019-08-03 17:29:39 · 2971 阅读 · 0 评论 -
source insight 4.0 对c/c++ 代码格式化 clang-format
安装 clang-format 在LLVM Download Page中下载 Windows 版本并安装 需要注意选择Add LLVM to the system PATH for current user或Add LLVM to the system PATH for all users其中的一项 安装完成后,在命令行中测试: clang-format -version ...转载 2019-09-11 19:44:45 · 4003 阅读 · 0 评论 -
《STL源码剖析》学习笔记一——Windows下g++编译环境安装与配置
Cygnus 是Windows下的g++编译器,安装后可以直接在根目录include文件夹下看到STL的源码,并且可以直接在源码中加上自己的一些能够帮助理解的代码,很方便。一、Cygnus for windows安装下载地址下载的可执行文件full.exe直接点开安装,安装后找到bin目录——如D:\Program Files\cygnus\cygwin-b20\H-i586-cygwin32\...原创 2018-03-24 23:08:09 · 818 阅读 · 0 评论 -
C++基础——静态库和动态库
静态链接库LIB和动态链接库DLL静态链接库与动态链接库----C/C++[编译链接装载]之静态链接C++静态库与动态库态链接与动态链接的区别转载 2018-05-09 18:21:01 · 434 阅读 · 0 评论 -
C++基础——extern关键字
extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。例1:创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cpp:int iRI;int main(){//.....}//B.cppint iRI;gcc A.cpp -cgcc B.cpp -c编译...转载 2018-05-04 21:14:13 · 184 阅读 · 0 评论 -
C++基础——类型转换
转自:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.htmlC风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解...转载 2018-05-09 14:35:30 · 152 阅读 · 0 评论 -
代码实践——String类
String.h#include "iostream" using namespace std; class String { public: String(const String& str); String(const char* c); ~String(); String operator+(const Str...原创 2018-05-09 14:10:42 · 175 阅读 · 0 评论 -
C++基础——异常
转自:https://blog.youkuaiyun.com/sky453589103/article/details/49862949异常是指程序在运行时存在异常行为,这些异常的行为让函数不能正常执行。异常应该捕获的应该是你能够处理的错误,比如:不能连接服务器,不能连接数据库等,但异常不应该是你修复代码的bug的手段,比如:数组访问越界。死锁等情况。在异常处理中,你需要的做的是尽可能的修补你错误,比如:释放...转载 2018-05-08 17:18:48 · 366 阅读 · 0 评论