自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 多重定义问题(static的一种运用)

当一个静态库libtest.a包含下述头文件test.h。另一个可执行文件也包含test.h头文件,同时又依赖libtest.a时,会出现多重定义问题(multiple definition of XXX)。用static修饰时,可以避免。以下是用来复现该问题的代码举例。没有编译、运行过,可能无法编译过。

2024-05-21 20:18:06 252

原创 std::vector的size()

使用vec.size() - 1需要注意,vec.size()是无符号的整数。

2024-04-08 20:27:44 310

原创 C++ erase

【代码】C++ erase。

2024-03-27 17:30:04 205

转载 CMake 常用命令

cmake是现在主流的用于多平台C++构建系统,本文用来记录cmake的一些常用命令的索引,加上一些自己理解,理解有误的话,欢迎大家指出。

2022-12-27 16:56:31 250 1

原创 [C++] string、char*和double、int等类型互转

【代码】[C++] string、char*和double、int等类型互转。

2022-09-29 10:37:27 1789

原创 Introduction to Algorithms--Part 3

Introduction to Algorithms--Part 3Part 3: Data StructuresChapter 10: Elementary Data Structures10.1 Stack and Queue10.2 Linked list10.3 Realization of Pointer and Object10.4 Representation of Rooted TreeChapter 11: Hash Table11.1 Direct-address Table(直接寻址表

2021-12-15 21:08:08 807

原创 Introduction to Algorithms--Part 1 and 2

Introduction to Algorithms--Part 1 and 2Part 1:FoundationsChapter 2: Getting Started2.1 insert sorting2.2 analyze algorithm2.3 design algorithmChapter 3: Growth of Functions3.1 asymptotic sign(渐近记号)Chapter 4: Divide-and-Conquer4.1 maximum subarray problem4

2021-06-24 17:34:16 254

原创 C++设计模式--设计模式的选择

目前的设计模式有3类,23种。本文总结了选择设计模式时主要的参考点。创建型设计模式创建者模式(Builder):对象的构造复杂,需要接受很多参数,这种情况可以考虑使用创建者模式。将复杂的对象构建过程,拆分成多个步骤,逐步构建。工厂模式(Factory):需要根据不同的传参,生成不同的对象时使用。常用的设计模式。原型模式(Prototype):3.1 对象的构造复杂,新构造对象时可以考虑使用原型模式,直接拷贝已有的对象。3.2 重新构造对象代价很大时单例模式(Singleton):整个应用只要

2021-06-08 14:58:33 338 1

翻译 C++设计模式--建造者模式

建造者模式(Builder)建造者模式将复杂对象的构造和表示分离,使得相同的构造过程可以创建不同的对象。问题(Problem)我们想要创建复杂的对象,但是我们不想要写一个复杂的构造函数或者一个需要很多参数的构造函数。解决方法(Solution)定义一个中间对象,其成员函数逐部分构建期望对象。建造者模式将期望对象的创建完成过程延迟到全部可选条件都指明后。#include <iostream>#include <memory>// "Product"class Piz

2021-06-01 16:32:08 146

翻译 C++设计模式--工厂模式

C++设计模式:转载翻译自wiki,详见https://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns设计模式(Programming Patterns)工厂模式(Factory)抽象工厂(Abstract Factory)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPan

2021-06-01 14:28:53 113

原创 C++访问说明符public、protected、private

1、类内访问说明符出现在类内部的访问说明符,作用如下代码及注释所示:值得注意的是: 派生类的成员或者友元只能通过派生类对象来访问基类的受保护成员。派生类对于一个基类对象中的受保护成员没有访问特权。下述代码举例进行了说明。// 类内访问说明符,访问限制由弱到强排序:public > protected > privateclass Base { // class默认为private,struct默认public int pri_mem1;public: int pub_mem; /

2021-05-31 16:55:41 623

原创 C++ 基类与派生类间的类型转换

隐式类型转换基类的指针(包括智能指针)或引用可以绑定到派生类对象。即存在派生类向基类的隐式转换。反之,不存在。基类和派生类的对象间不存在隐式类型转换。当我们初始化或者赋值一个类类型对象时,实际上是在调用某个函数。当执行初始化时,调用构造函数;当执行赋值操作时,调用赋值运算符。故:使用派生类对基类初始化或赋值,能正常编译运行。反之无法通过编译。Bulk_quote bulk; // 派生类对象Quote item(bulk); // 调用Quote::Quote(const Quote&

2021-05-31 11:24:32 5279 1

原创 好用的软件及小工具

对比软件:Beyond Compare 4、diffmerge、meld(ubuntu)流媒体播放器:VLC media player。vs插件:Visual Assist X、内存分析工具:gperf、valgrind。处理大文件的编辑器:emeditor。远程控制软件:MobaXterm。网络抓包工具:wireshark。文件编辑器:notepad++U盘启动盘工具:Rufus。远程桌面:ToDesk。

2021-05-06 14:29:52 187

原创 数学之美--数学方法的用途

概率论:涉及概率的地方,如:机器翻译、计算机自动问答、中文分词等。零概率问题的平滑处理马尔可夫假设:随机过程中各个状态st的概率分布之与前一个状态St-1有关。符合该假设的随机过程称为马尔可夫过程,也叫马尔可夫链。隐含马尔可夫模型:布尔运算:计算机运算非常快,最便宜的微机,1s能进行数十亿以上。可用于索引,如:0000000000000001…,其中1对应的位置可以表示存在等等。图论:能...

2020-03-27 21:22:36 316

原创 C++中的初始化

初始化的概念初始化(initialized):当对象在创建时获得了一个特定的值,称为对这个对象的初始化。注:定义在函数体内部的内置类型的变量不被初始化(uninitialized),此类变量的值是未定义的。static的除外,static的变量会执行值初始化,值为0。初始化的分类...

2019-11-24 22:00:01 3745 2

原创 常用ROS命令

ROS:1. 编译单个节点: catkin_make --pkg 节点名2. 发布话题: rostopic pub /话题名3. 调用服务: rosservice call /服务名4. 启动节点: rosrun5. 杀节点: rosnode kill /节点名6. 列出节点名: rosnode list其他:1. 解压.tar.gz文件:tar -zxvf xx.tar.gz ...

2019-11-16 19:29:38 375

原创 Jenkins资料汇总

一、Jenkins插件大全及用途简介:https://blog.csdn.net/pansaky/article/details/80755739二、gerrit代码合入后触发Jenkins构建:1. https://www.jianshu.com/p/5b6a338ff18c2. https://www.backendcloud.cn/2017/06/28/trigger-bui...

2019-08-04 17:35:04 349

原创 2数交换的方法

**C/C++中实现2数交换。**a、b为需交换的数1.a=a+b;b=a-b;a=a-b;/2/交换或者使用如下方式a=a^b;b=b^a;a=a^b;注:^为c语言中的异或运算符/3/交换或者使用如下方式c = a;a = b;b = c;...

2018-10-06 16:03:50 328

空空如也

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

TA关注的人

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