![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Jeff_ROS
路漫漫,上下求索!!!
展开
-
C/C++const修饰彻底搞懂
const原创 2022-02-09 13:55:58 · 852 阅读 · 0 评论 -
C/C++void *memset(void *s, int ch, size_t n)的关键之处
函数解释:将s中当前位置后面的n个字节设置为ch值,注意是“字节”,那么int类型的内存就是4个字节,其memset(*s, 1, n)得到并不是int元素的值为1,而是0x01010101。切记此处理解,分享之!!!原创 2022-02-09 11:51:31 · 901 阅读 · 0 评论 -
C/C++指针数组与数组指针彻底搞明白
1. 从定语加名词的词组结构看,子面意思上,定语为内存的内容,名词为变量名称,因此:指针数组:这是一个数组,数组里面是啥?是指针。 数组指针:这是一个指针,指针指向的是啥?是数组。2.从代码形式上,名词为重点强调的内容,谁是重点强调,变量的本质就是谁,应此:int *p1[5];//强调的是数组,p1是一个数组,数组里面装的指针。int (*p2)[5];//用括号阔起来了,表示强调,强调的是指针,p2是一个指针,指针指向数组。3.示意图这还有什么不明白的,小编记.原创 2022-02-09 11:43:20 · 648 阅读 · 0 评论 -
C语言的继承与多态
这篇文章旨在记录自己对C语言的封装、继承与多态的学习过程,参考了CSDN上的一篇博客,本来要贴出来地址,无奈无痕浏览模式下找不到在哪里了。不过这并不影响我的分享。对于继承和多态,我这里不做解释,看到这篇文章自然有一定的基础,解释自然是多余了。既然有基础了,那我直接上代码,供伙伴们查看和觉悟即可。为方便无基础的伙伴,还是要提点一下关键,至少看不懂的时候,可快速自检自己的知识盲区。阅读源码的基础如下:1. 熟悉C/C++语言,至少其中一种。2. 了解内存模型,学习过C++的,自然看一下就明.原创 2021-11-01 17:30:02 · 468 阅读 · 0 评论 -
upper_bound 和lower_bound彻底搞懂
1. 问题引出 今天在查看ORB_SLAM2注释版源码keyframe.cpp文件的时候,发现注释者的意见:// http://www.cplusplus.com/reference/algorithm/upper_bound/// 从mvOrderedWeights找出第一个大于w的那个迭代器// 这里应该使用lower_bound,因为lower_bound是返回小于...原创 2019-06-28 12:05:36 · 12732 阅读 · 2 评论 -
用vector编写一个矩阵模板
vector可以写二维以上的矩阵么?这个问题我在看完vector和string的时候就在思索。应该怎么写?采用和二维数组类似的思想,如果vector容纳的vector不就可以了,而且访问操作要比数组方便不少。程序如下:#include#includeusing namespace std;template //模板class matrix {public: matrix(int r原创 2017-01-07 12:50:41 · 866 阅读 · 0 评论 -
vector和string
我这里不是将他们的区别,主要讲使用他们时要注意的一些问题,主要体现在内存方面。C++中,我们很少使用C中的数组,使用数组就意味着承担:new一个数组以后,必须保证有delete来删除所分配的内存。最好是指针句柄可以*p=NULL。必须使用正确的delete,单个对象分配内存时使用delete,多个对象分配内存时使用delete[ ]。一个对象必须只被delete了一次,多次会出现意原创 2017-01-06 16:32:21 · 718 阅读 · 0 评论 -
C++ Const深入解析
“深入解析”这一词只是为了吸引大家的眼球,这里我主要说说自己的理解。既然是深入解析,那也要有一定的见解才好,不然贻笑大方。Const顾名思义,就是常量,常量是什么,那就是不能轻易改变,注意是轻易,(用const_cast可以强制转化)。原创 2017-01-05 19:09:11 · 719 阅读 · 0 评论 -
c++ thread(2.1)---join()
今天第一次接触C++并发编程,工具用书是《C++并发编程实战》,这本书翻译的非常好,比较尊重原著。侧重join()函数的使用先上代码:#include#includeusing namespace std;void hello(){ cout << "szu 801 科技楼!"<<endl;}void do_something(){ cout << "wait f原创 2016-10-18 21:19:12 · 1138 阅读 · 0 评论 -
C++ STL初识
//STL六部分:/*1、容器:Containers,用于整理数据集合,包括各种数据结构:vector,list,deque,set,map等,是一种class template2、算法:Algorithms,定义了计算过程,如:sort,search,copy,erase等,是一种function Template。3、迭代器:Iterators,提供遍历容器的方法,是容器与算法直接的胶翻译 2016-08-26 17:36:34 · 572 阅读 · 0 评论 -
C++指针和数组和动态分配内存
#includeusing namespace std;//数组与指针int main(){int arry[] = {1,2,5,8,6,3,7};int * a = arry;cout for (int i = 0;i {cout }cout int *p = arry;int *q = p + sizeof(arry) / sizeo翻译 2016-08-26 12:15:03 · 977 阅读 · 0 评论 -
C++函数参数传递--值传递和地址传递
直接上代码://函数参数的传递//值传递和地址传递。值传递是将实参传递给函数之后,系统建立了一个实参的副本,其值和实参相同。//值传递无法改变实参的值,改变的只是实参的副本,如:#includeusing namespace std;void swapValue(int x,int y){ int temp; temp=x; x=y; y=temp;翻译 2016-08-26 10:33:03 · 511 阅读 · 0 评论 -
C++输出倒三角加数字
中兴笔试题目:#includeusing namespace std;class Triangle {public: explicit Triangle(int n) : rows(n), sum(0), count(0), temp(0) { maxNum = rows*(rows + 1); } void TriangleOutput();private: int row原创 2016-08-25 20:50:56 · 4207 阅读 · 0 评论 -
c++ Static理解
直接上代码:/*类的static成员: 常用来统计创建特定类类型对象的数量包括类的static数据成员和static成员函数。优点:1、有利于类的封装,可以把static定义为private成员,防止外部访问2、static成员是与特定的类相关联的,在外部使用必须使用类名字做前缀,程序更清晰3、static 成员的名字是在类的作用域中,可以避勉命名冲突。*///静态数据成员用例翻译 2016-08-25 09:53:21 · 472 阅读 · 0 评论 -
C++友元理解
为了是自己理解深刻,方便自己随时查找,也方便大家,特发此博客共享:直接上代码:/*为了使类的private成员和protected成员可以被其他类和其他成员函数使用,引入了友元概念。友元函数:友元是普通函数或类的成员函数友元类:友元是一个类,类的所有成员函数称为友元函数。友元函数定义后可以访问该类的所有对象:private,protected,public成员。格式:friend(参翻译 2016-08-24 19:52:23 · 441 阅读 · 0 评论 -
深入了解C++继承
private、public、protected和friend深入理解,不说话,直接上代码//派生类(derived)分为单继承(inherit)和多继承。基类是对派生类的抽象,派生类是对基类的具体化,是基类的延续。派生类也可以看做是基类的组合(多继承)//公有派生类的对象可以作为基类的对象处理。格式:class :。继承方式:(virtual) private,public,protected原创 2016-08-24 17:25:50 · 448 阅读 · 0 评论