
C++技巧
su扬帆启航
亦余心之所善兮,虽九死其犹未悔
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
map::find和map::lower_bound/upper_bound的使用
map容器是根据键值进行排序的,STL库中的函数原型:iterator upper_bound (const key_type& k);const_iterator upper_bound (const key_type& k) const;iterator lower_bound (const key_type& k);const_iterator lower_...原创 2019-11-11 13:34:21 · 2144 阅读 · 1 评论 -
C++之STL容器学习总结
文章目录1.STL容器简介1.1STL介绍1.2容器分类2.向量vector2.1定义和初始化2.2常用操作2.3遍历操作3.列表list3.1定义和初始化3.2常用操作3.3遍历操作3.4实例程序4.双端队列deque4.1定义和初始化4.2常用操作4.3实例操作5.集合set5.1定义和初始化5.3常用操作5.4遍历操作5.5实例操作1.STL容器简介1.1STL介绍STL是什么?STL...原创 2019-10-31 15:13:50 · 4015 阅读 · 0 评论 -
C++高并发多线程学习(一)
文章目录1.简介2.与 C++11 多线程相关的头文件:3.各个主要功能模块概述3.1线程std::thread3.2互斥变量std::mutex,std::lock_guard,std::unique_lock3.3原子变量std::atomic3.4 条件变量condition_variable3.5获取方 std::future3.6 提供方std::promise3.7 异步操作 std:...原创 2019-10-24 11:37:30 · 7626 阅读 · 1 评论 -
C++中ofstream写入文件使用例程
文章目录1.添加头文件2.打开文件3.关闭文件1.添加头文件#include <fstream>#include <sstream> using namespace std;2.打开文件//在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;//如果想以输出方式打开,就用ofstream来定义;如果想以输入/输...原创 2019-07-02 15:08:41 · 37306 阅读 · 2 评论 -
C++的35个技巧阅读笔记(四)
文章目录28.Smart Pointers(智能指针)29.Reference counting(引用计数)30.Proxy classes(替身类、代理类)31.让函数根据一个以上的对象类型来决定如何虚化系列文章:C++的35个技巧阅读笔记(一)C++的35个技巧阅读笔记(二)C++的35个技巧阅读笔记(三)28.Smart Pointers(智能指针)所谓smart pointer...原创 2019-09-05 12:49:18 · 451 阅读 · 0 评论 -
C++的35个技巧阅读笔记(三)
文章目录21.通过重载避免隐式类型转换22.考虑以操作符复合形式(op =)取代其单独形式(op)23.考虑改变程序库21.通过重载避免隐式类型转换利用重载技术时候需要注意,每一个重载的operator必须带有一个“用户定制类型”的参数。不要忘了80-20原则,增加一大堆重载函数不一定是件好事,除非使用重载函数后,程序的整体效率获得重大的改善。查看条款1922.考虑以操作符复合形式(o...原创 2019-08-28 15:59:17 · 569 阅读 · 1 评论 -
C++的35个技巧阅读笔记(二)
文章目录11.禁止异常(exception)流出析构函数之外12.了解“抛出一个exception”与“传递一个参数”或“调用一个虚函数”之间的差异11.禁止异常(exception)流出析构函数之外两种情况下destructor会被调用1、当对象在正常情况下被销毁,也就是它离开了它的生存空间或是被明确地删除;2、当对象被exception处理机制(也就是exception传播过程中的...原创 2019-08-11 10:58:15 · 659 阅读 · 0 评论 -
C++的35个技巧阅读笔记(一)
文章目录1.仔细区别指针和引用2.最好使用C++转型操作符3.绝对不要以多态方式处理数组4.避免无用的默认构造函数1.仔细区别指针和引用1、引用必须代表某个对象,没有所谓null引用,因此必须有初值。2、使用引用可能会比使用指针更有效率,因为使用引用之前不需要测试其有效性。3、指针可以被重新赋值,指向另一个对象,指针 却总是指向(代表)它最初获得的那个对象。string s1("Na...原创 2019-08-03 20:59:43 · 2612 阅读 · 1 评论 -
C++中的fabs()和abs()
fabs()和abs()区别相同点:1.都是获取绝对值2.头文件都需调用#include<cmath>或者是<math.h>不同点:函数名: abs功 能: 求整数的绝对值用 法:int abs(int i);返回的是|x|的值函数名:fabs功能:求浮点数x的绝对值用法:float fabs(float j);double fabs(do...原创 2019-07-29 16:00:56 · 8745 阅读 · 0 评论 -
Google的C++编程规范总结
文章目录引言1 格式1.1 每行代码不多于 80 个字符1.2 使用空格(Space),而不是制表符(Tab)来缩进,每次缩进4个字符1.3 指针符号*,引用符号& 的位置,写在靠近类型的地方1.4 花括号位置1.5 if, for, while等语句就算只有一行,也强制使用花括号2 命名约定2.1 使用英文单词,不能夹着拼音2.2 总体上采用骆驼命名法2.3 名字不要加类型前缀2.4 类...原创 2019-06-29 14:46:58 · 5145 阅读 · 3 评论 -
C++大型项目中使用hpp和h文件代替cpp
文章目录1.hpp头文件与h头文件的区别:2.msf中代码分析2.1利用hpp实现2.2利用h文件实现1.hpp头文件与h头文件的区别:hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用h...原创 2019-07-07 14:59:16 · 9210 阅读 · 2 评论 -
C++打印中的技巧"\033[字背景颜色 字体颜色m字符串\033[0m"
格式: echo -e “\033[字背景颜色;字体颜色m字符串\033[0m”例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 那些ascii code 是对颜色调用的始末. \033[ ; m …… \033[0m 字背景颜色范围:40----49 40:黑 41...原创 2019-07-11 10:26:10 · 4498 阅读 · 2 评论 -
C++编写Config类&ROS动态参数总结
文章目录1.C++编写Config类1.1Config的头文件1.2Config的cpp文件1.3调用Config的类读取txt2.ROS中的Config动态参数2.1动态参数编写2.2动态参数生成2.3调用动态参数1.C++编写Config类1.1Config的头文件//Config.h #pragma once #include <string> #incl...原创 2019-07-09 20:20:45 · 1728 阅读 · 0 评论 -
C++的35个技巧阅读笔记(五)
文章目录32.在未来时态下发展程序33.将非尾端类(non-leaf classes)设计为抽象类(abstract classes)34.如何在同一个程序中结合 C++ 和 C35.让自己习惯于标准C++语言系列文章:C++的35个技巧阅读笔记(一)C++的35个技巧阅读笔记(二)C++的35个技巧阅读笔记(三)C++的35个技巧阅读笔记(四)本次笔记为More Effective ...原创 2019-09-23 14:00:37 · 605 阅读 · 1 评论 -
gdb调试总结笔记
文章目录1.介绍2.简单操作3.gdb命令总结1.介绍GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助我们完成下面4个方面的功能:1.启动程序,可以按照自定义的要求随心所欲的运行程序。2.让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。3.当程序被停住时,可以检查此时程序中所发生的事,并追索上文。4.动态地改变程序的执行环境。注意:利...原创 2019-10-05 15:30:11 · 620 阅读 · 0 评论