自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 vector里存储裸指针

vector插入元素时,可能需要resize,并且将原有元素拷贝到新的地址上,这就是为什么前后两次0xd34300,0xd34320输出地址不同。而他们vector中存储元素存储的地址始终是不变的,即t1指向的内容。//改成cout<<&(v[0])<<endl;就变成底下“输出2”cout<<&(*v[0])<<endl;//改成cout<<&(v[0])<<endl;就变成底下“输出2”可以明确看出,输出2的三个地址是不同的。

2024-03-07 17:55:07 176

原创 c++ deque vector set list comparison

欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入MarkdownText-to-HTMLAuthorsJohnLuke。

2023-08-15 10:38:05 608

原创 operator<< 重载为什么需要是类的friend函数

具体例子如下,print函数的实现,是希望通过operator<<重载来输出Test类的具体信息,这个时候print里的这句话“cout<<*this”,相当于调用函数operator<<(cout,操作符的重载具体可以参考这个文章,写的很好:https://condor.depaul.edu/ntomuro/courses/262/notes/lecture3.html。当一个类中定义某个类外的函数为friend(友元)函数时,这个friend函数可以访问该类的private成员变量。

2023-04-21 15:54:22 308

原创 c++ weak_ptr 和shared_ptr的用法

c++ shared_ptr & weak_ptr

2022-10-14 11:35:22 1704

原创 const和constexpr

const和constexpr

2022-10-12 11:07:37 189

原创 c++ template traits

template traits

2022-09-30 09:29:59 466

原创 C++中模板类对象创建

c++模板类对象创建

2022-09-16 10:32:25 979

原创 c++ virtual base class

c++ virtual base class

2022-08-31 08:49:45 258

原创 c++ Strategy模式

c++ Strategy模式

2022-08-25 07:53:13 107

原创 c++ typedef

c++ typedef

2022-08-19 10:21:46 617

原创 c++ 区分接口继承和实现继承

c++ 区分接口继承和实现继承

2022-08-18 08:30:34 177

原创 避免遮掩继承而来的名称

避免遮掩继承而来的名称

2022-08-02 08:56:47 75

原创 public protected private继承

public protected private继承

2022-08-02 08:20:45 1270

原创 将文件间的编译依赖关系(Compilation dependency)降至最低

将文件间的编译依赖关系(Compilation dependency)降至最低

2022-07-27 09:36:49 145

原创 linux下多个版本python,指定默认版本

python有多个版本,如何使用指定版本的python为默认运行版本。

2022-06-16 10:58:06 3474

原创 Effective c++条款24:若所有参数皆需类型转换,请为此采用non-member函数

Effective c++条款24:若所有参数皆需类型转换,请为此采用non-member函数

2022-06-09 09:14:36 73

原创 template class

简单的template class定义为:templateclass A{public:A(T a){cout<<a<<endl;}};int main(){A a(1);};[以下是更为负责的逻辑,有两个typename,其中根据第二个typename,定义不同的class进行不同逻辑的处理]#include #include using namespace std;template <typename B, typename D>c

2022-05-19 11:13:54 597

原创 shared_ptr自定义析构逻辑

#include #include using namespace std;/*class Stock : public Investment {public:Stock(){cout<<“Construct Stock”<<endl;}~Stock(){cout<<“Destruct Stock”<<endl;}};*/class Investment {public:Investment(){cout<<“Co

2022-05-18 17:36:02 205

原创 shell run python文件,以输出结果查询关键字,匹配就结束shell

sh test.sh >> run.log//以下为shell文件内容runFlag=1while [[ $runFlag -eq 1 ]]doresult=python ./test.py echo $resultfailed=echo $result | grep "ERROR" | wc -cecho $failedif [[ $failed -ne 0 ]];thenecho “FAILED”runFlag=0fidone

2022-04-28 17:14:57 742

原创 for_each + lamdba

void output(int x, int y){cout<<x<<endl;}int main() {vector vec;vec.push_back(1);vec.push_back(2);vec.push_back(3);int test = 0;cout<<"test:"<<test<<endl;for_each(vec.begin(), vec.end(), output);for_each(vec.begin(

2022-02-22 11:16:12 379

原创 git merge --squash

有开发主分支main_branch, 自己做开发时,git checkout -b local_branch main_branch.在local_branch上git cherry-pick了好几个commit,想要把这几个commit作为一次提交,提交到main_branch上,应该怎么做?$ git fetch local_branch$ git checkout -b squash_commit local_branch$ git branch squash_commit$ git che

2021-09-17 09:07:35 229

原创 GMOCK test及使用问题回顾

MockClass: RealClass;(1)RealClass中的函数是virtual函数;(2)MOCK_METHOD2(funcName, bool(const char* name, const char* country)); //函数有两个参数,函数的返回值是bool,funcName是真实函数的名字;(3)MOCK函数如果没有被EXPECT_CALL设置返回值,bool类型的函数默认返回值是false;(4)static函数被mock的话,MOCK_CONST_METHOD1使用此接

2020-05-21 09:45:52 565

原创 c++ public,protected, private成员变量或者成员函数访问权限

public 成员变量或者函数,可以通过类的实例对象访问,不管是在类内部还是其他作用域;protected成员变量或者函数,只能在类内部或者public 或者protedted继承的子类内部访问;private 成员变量或者函数,只能在类内部访问。//这里没有阐述友元函数和友元类的情况,如下是上面阐述的实例测试:#include using namespace std;class Base{protected:int a;int b;void out(){int c = a + b;

2020-05-13 09:57:06 2369 1

原创 绝不在构造和析构函数中调用virtual函数

devried class对象内的base class成分会在derived class自身成分被构造之前先构造妥当。由于base class构造函数的执行更早于dervied class构造函数,当base class构造函数执行时dervied class的成员变量尚未初始化。如果此期间调用的virtual函数下降至dervied class阶层,要知道dervied class的函数几乎...

2020-01-31 12:23:37 208

原创 变量的生存周期和作用域

2020-01-22 17:08:32 281

原创 C++不允许"让referenc改指向不同对象"

因为C++不允许"让referenc改指向不同对象"。如果你打算在一个"内含reference成员"的class内支持赋值操作,你必须自己定义copyassignment操作符。(情况如例1)面对"内含const成员"的classes,编译器的反应也一样。最后还有一种情况:如果某个baseclasses将copyassignment操作符声明为privates,编译器将拒绝为其deri...

2020-01-22 10:40:34 410

原创 用户自定义类型和const那些事儿

一个良好的用户自定义类型的特征就是它们避免无端地与内置类型不兼容。重载函数是函数的一种特殊情况,c++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。重载函数常用来实现功能更类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同。函数覆盖发生在父类与子类之间,其函数名、参数类型、返回值类型必...

2020-01-22 10:38:33 577

原创 指针、常量、数组的组合

不管是指针常量,还是指针数组,都指针都是修饰后边的词,所以都是指的指针指向的内容是常量或者数组。常量指针或者数组指针,都是修饰指针的,所以常量指针表明是一个不能被改变的指针,数组指针表明是指向数组的指针。指针常量:指针类型的常量。表明指针内容不能改变。常量指针:指向常量的指针。表明指针所指向的内容不能改变。指针数组:指的是数组中的元素为指针类型的。比如:#include #inclu...

2020-01-15 22:00:28 155

原创 inline函数

?函数调用的成本?inline和宏?对于只有几条语句的小函数来说,与函数的调用、返回有关的准备和收尾工作的代码往往比函数体本身的代码要大的多。因此,对于这类简单的、频繁使用的小函数,将之说明为内联函数可提高运行效率。inline函数本质上还是函数,所以可以进行类型检查,而宏只是文本替换,所以不能进行参数类型检查。...

2019-12-20 09:01:41 160

原创 virtual析构函数

带多态性质的base class应该声明一个virtual析构函数。如果class带有任何virtual函数,它就应该有一个virtual析构函数。class设计的目的如果不是作为base class使用,或不是为了具备多态性质,就不应该生命virtual析构函数。因为只有base class的析构函数是virtual的...

2019-12-15 17:42:43 394

原创 拷贝构造函数

copy构造函数时一个尤其重要的函数,因为它定义一个对象如何passed by value(以值传递)

2019-12-13 09:30:18 82

原创 default构造函数

effective c++中说到的default构造函数,指的是一个可被调用而不带任何实参者。这样的构造函数要不没有参数,要不就是每个参数都有缺省值。如果构造函数被声明为explict,这可阻止它们被用来执行隐式类型转换,但它们仍可被用来进行显示类型转换。class B {public:explict B(int x=0, bool b=true);};void doSomething...

2019-12-06 09:29:03 1555

原创 include和namespace的区别

include某个头文件,是为了引用其他文件中的内容,比如A文件调用B文件中的某个函数,则需要include <B.h>.using namespace 是为了代码整洁,比如A文件中引用了头文件B和C,调用了某个函数,而B和C文件中都有该函数,则需要通过namespace来说明,调用的这个函数到底是B文件中的还是C文件中的。所以可以在A文件中using namespace,也可以在函...

2019-12-05 08:58:16 1082

原创 Linux下安装tmux

下载安装包wget https://github.com/tmux/tmux/releases/download/2.9/tmux-2.9.tar.gztar -xvf 解压压缩包,然后进去找到README文件按操作步骤进行安装下载libevent库 http://libevent.org环境变量设置(运行tmux会报找不到libevent.so,进行环境变量设置即可)(1)...

2019-11-08 13:41:27 263 1

原创 Linux第三学

linux境变量,bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息。

2019-10-26 09:54:50 168

原创 gdb调试GTest,GTest加参数运行

一、如何通过GDB调试GTestgdb ./unitTestName那如果要加参数呢?gdb ./unitTestName回车;会进入到gdb界面,输入: set args 想要加的参数,回车;输入: run 回车二、GTest运行时只想跑部分测试用例怎么办?比如unitTest里有很多test文件,每个文件里有多个testcase,可是我只想跑部分测试用例呢?./unit...

2019-10-22 17:17:11 5076

原创 Linux第二学

一、磁盘情况查看df查看磁盘使用情况;du可以显示某个特定目录西A的磁盘使用情况;二、文件内容排序sort filename 对数据进行排序:sort -n filename按数值排序;sort -M filename用三字符按月份排序;sort -t filename按指定字符分隔;sort -k filename指定排序的字段;eg: sort -t ‘:’ -k 3 -n ...

2019-10-20 10:48:40 94

转载 linux_pdb调试python文件

转载:https://www.cnblogs.com/lzc978/p/10820348.html

2019-10-14 10:49:21 124

原创 Linux第一学

一、查看文件内容查看文件内容比较多的命令:less filename查看实时刷新的日志内容:tail -f filename(不加-f不会将新的日志内容进行实时刷新显示)查看文件的最开始内容:head filename输出文件内容到屏幕:cat filename二、软硬连接软链接(ln -s)相当于是windows的快捷方式,并不会在软连接文件有真正的源文件内容;硬链接(ln)相当于...

2019-10-14 08:54:39 121

转载 vim复制粘贴到windows

http://www.worldhello.net/2010/12/08/2190.html

2019-10-11 13:53:07 2666

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除