- 博客(12)
- 收藏
- 关注
原创 const、ref、pointer、编译相关问题
本来是因为上一篇写的比较短,在下面补了一些相关内容凑字儿,结果越写越多,还是单独开个帖吧。1.pointer相关常指针:int * const p表示指向的量是常量(pointer to const);指针常量:const int* p表示指针本身是常量(const pointer);const int * const p从右往左读,const p表示p是个常量, const int* 表示p是个指针,且指针指向的对象是const int类型的,故指针本身和指向的量都是常量。2.const变
2022-05-25 18:05:42
398
1
原创 返回引用的常成员函数
场景:为一个类的private数组成员定义get接口时遇到了一些写法问题,记录一下错误写法以下写法可以通过编译,但运行时会有段错误class exampleClass{public: ///todo ?? getX() const{return m_X;}private: float[3] m_X;}写上述接口的时候总是报类型相关的错,经测试,接口类型应写为:const float * const & getX() const{ return m_X;//float[3]
2022-05-25 15:17:06
222
原创 c++#Include路径
C++ #include路径""双引号的路径表示当前目录下的文件,../表示上级目录。<>路径表示编译器默认路径和链接库下的文件。如已成功链接库OpenCV,include<>便可找到OpenCV目录下的文件。也可以通过用户环境变量增加编译器默认路径:gcc: C_INCLUDE_PATH; g++:CPLUS_INCLUDE_PATH...
2022-05-17 11:00:00
2066
原创 【数据结构】Manacher算法
ManacherManacher算法要解决的问题是在一个字符串中寻找最大回文子字符串长度。该问题的暴力解法是遍历每一个字符,从该字符向两边扩展,寻找边界。但该方法中,每次扩展得到的信息并不能被充分利用,设一个字符串如下:标记为灰色的回文子串中,右侧的’a’‘b’'a’三个字符为中心的最大回文子串长度与左侧的对称点的相应信息是完全相同的,Manacher就是利用这个信息对暴力解法进行了加速。辅助字符串回文字符串可能是奇数或偶数个,为了在算法中不考虑奇数和偶数的情况,对原字符串进行扩充:在
2022-05-03 16:14:06
1152
原创 【数据结构】KMP算法
KMP算法KMP的加速过程KMP算法要解决的问题是:检测字符串s1是否包含字符串s2。检测s1是否包含s2,暴力做法是从s1的每一位开始依次检测与s2是否相等。但这样做浪费了一些检测成果。如下图若s2在红色处检测出不同,而红色处的前缀字符串中有相同的前缀和后缀(“ab”),此时完全不必从s1的下一个字符开始检测,而可以从第二个ab处开始检测。要实现这样的想法,首先得确定s2每一个字符的前方子串中相同前缀和后缀的长度,可以用一个相同长度的数组来表示。如图,s2中红色字符前方相同前缀和后缀长度
2022-05-02 15:35:08
549
原创 两size()相减判断出错bug
写代码中遇到一个问题,如下: int l_size = m_less.size(); int g_size = m_greater.size(); if((m_less.size() - m_greater.size()) > 1){// if((l_size - g_size) > 1){ int temp = m_less.top(); m_less.pop(); m_greate
2022-04-30 20:33:41
260
原创 注册函数以在程序终止前调用
如shmctl一般的需在程序终止前调用的函数,可用atexit注册,但注册数量有上限。由于程序可能在任意作用域内终止,故此类函数不可以有参数,不过可以使用全局变量(不可在任何namespace内)#include "src/Device.h"#include <unistd.h>#include <iostream>#include <stdlib.h>#include <sys/shm.h>#include <sys/ipc.h>
2022-04-29 21:24:46
184
原创 add_libraries, add_executable, target_link_libraries, link_libraries用法
如题
2022-04-28 12:59:09
1747
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人