随笔分类 - c++
摘要:经过测试 调用_exit退出的是不会调用static对象相关的析构 而exit退出的是会调用static对象的析构 2022-01-08最新测试 exit退出不会调用local object的析构 参考网站https://blog.csdn.net/drdairen/article/details/
阅读全文
摘要:根本原因是用到某个符号的时候符号还没声明,找不到符号导致编译报错 方法是make .. verbose=1,展示所有预处理,编译等详细过程 然后使用 gcc -E ,查看文件包含展开的情况 gcc -E circle.c -o circle.i C语言代码在交给编译器之前,会先由预处理器进行一些文本
阅读全文
摘要:c++的lambda 可以捕获this指针,使lambda可以在自定义的function内使用类的成员函数,这是因为捕获this后隐式的在成员变量前加了this 但是需要注意的是,这里捕获this,不是以一种拷贝的方式,更像是一种引用(或者别名,描述可能不准确),当在外面这个类的生命周期结束时,la
阅读全文
摘要:因为看到了在构造函数中,不能使用shared_from_this,故感好奇一探究竟 先上结论,因为只有在shared_ptr<T> 构造的时候,derived enable_shared_From_this类中的管理指针,才会生效 即 shared_ptr<A> sptr = new A(); 如在
阅读全文
摘要:C++ 构造函数的异常是一个比较难缠的问题,很多时候,我们可能不去考虑这些问题,如果被问到,有人可能会说使用RAII管理资源。 但你真的考虑过如果构造函数失败了,到底会发生什么吗,前面构造成功的成员、基类对象应该怎样回收? 最近在知乎上看到有人提到这个问题: http://www.zhihu.com
阅读全文
摘要:另一篇好文地址 c++性能优化--tcmalloc https://blog.51cto.com/9291927/2568961?source=dra gperf官方介绍https://gperftools.github.io/gperftools/tcmalloc.html 前言 TCMalloc
阅读全文
摘要:2022/08/02更新 以下动态库方法,如使用隐式加载(不适用dlopen,编译链接时-l链接进去),符号默认会暴露出去 另有静态库符号和符号隐藏的一些内容 原文地址 https://www.cnblogs.com/bourneli/archive/2011/12/28/2305280.html
阅读全文
摘要:以上代码可以正常运行! 我们可能会赶到奇怪,为什么class C在header中定义了,并且在其他两个cpp中都include了,结果,链接时不会报重复定义的错误? 原因: 编译单元:一个.cc或.cpp作为一个编译单元.生成.o,简单来说一个cpp文件就是一个编译单元。 类的声明: class A
阅读全文
摘要:到了今天发现static还有一些知识没搞明白 c/c++语言中,在执行main的入口函数之前,是会首先执行一段代码。而对于全局变量和部分static的初始化就是 在main函数之前执行的,例子如下: #include <iostrem.h> #include <stdio.h> class CTes
阅读全文
摘要:使用tcmalloc时,如果程序加载了同一个库的.a和.so(例如两个不同的库分别加载一个库的动态静态),会出现崩溃问题。具体现象就是会出现invalidfree
阅读全文
摘要:重载 operator() 的类的对象以及函数指针叫函数对象。 类重载 operator() 有一些好处: operator() 可以是重载的函数。传递这个函数对象给泛型库时,可以把重载集作为一个整体传过去。而传函数指针的话只能传单体。 函数对象可以有状态,这可以实现闭包。 C++ 语核里有 lam
阅读全文
摘要:目前还在研究,没有明确是的方法 方法1是重命名其中一个库,如果库中有同名的符号的话,可以使用 -fvisibility=hidden,编库的时候对函数加上就可以不对外暴露此接口 -Bsymbolic 强制采用本地的全局变量定义,这样就不会出现动态链接库的全局变量定义被应用程序/动态链接库中的同名定义
阅读全文
摘要:在类的内部获得自己的shared_ptr这件事情是很难避免的,加了这个可以在现有this的计数上继续增加
阅读全文
摘要:在C++标准中,是这样描述的(在标准草案的6.7节中): such a variable is initialized the first time control passes through its declaration; such a variable is considered initi
阅读全文
摘要:动态规划的题,我先用最初级的方式写出来 class Solution { public: int rob(vector<int>& nums) { if(nums.size()==0) { return 0; } int n=nums.size(); if(n==1) { return nums[0
阅读全文
摘要:https://www.cnblogs.com/catch/p/3176636.html
阅读全文
摘要:https://blog.csdn.net/weixin_36750623/article/details/84946203 linux下产生SIGPIPE原因 signalclinux 写了一个简单的client 和 server测试函数,server在调用完accpet之后,会向监听套接字进行w
阅读全文
摘要:一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。 有些房间由恶魔守卫
阅读全文
摘要:这里写了两道题,第二道题依赖第一道题,就先分析第一道题 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert("apple");trie.search("apple
阅读全文
摘要:给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:
阅读全文