C++
文章平均质量分 58
正一番薯
这个作者很懒,什么都没留下…
展开
-
gtsam: 解决 error while loading shared libraries: libmetis-gtsam.so
参考github上的issue:https://github.com/borglab/gtsam/issues/380@acxz , this issue is solved by addling following in ~/.bashrc suggested by @ProfFanexport LD_LIBRARY_PATH=/home/lin/local/lib/:$LD_LIBRARY_PATH.But this issue is wired, so please let me know.原创 2022-05-03 16:50:10 · 719 阅读 · 0 评论 -
c++常见面试题
文章目录语言C++ 中智能指针和指针的区别是什么?C++ 中多态是怎么实现的简述 C++ 右值引用与转移语义STL 中 vector 与 list 具体是怎么实现的?常见操作的时间复杂度是多少?C++ 11 有什么新特性简述 new 与 malloc 的区别深拷贝与浅拷贝区别是什么?C++ 中虚函数与纯虚函数的区别编译时链接有几种方式?静态链接和动态链接的区别是什么?内存中堆与栈的区别是什么?const、static 关键字有什么区别类默认的构造函数是什么?简述 C++ 中内存对齐的使用场景变量的声明和定义原创 2021-04-07 22:58:04 · 706 阅读 · 0 评论 -
深入探索C++对象模型_(4)虚函数表
文章目录虚函数表指针虚函数表虚函数表是怎么工作的?虚函数表的布局?多重继承的类对象虚函数指针是怎么布局的?虚函数表(vtbl)和虚函数表指针(vprt)是在什么时候被创建的?虚函数表指针如果某个类中声明了虚函数,那么编译器会在该类对象以及该类的派生类对象中插入一个指针变量,此变量就是虚函数指针虚函数表指针的位置可能在对象开头,也可能在对象末尾,取决于编译器// project100.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <ios原创 2021-04-03 11:19:29 · 542 阅读 · 1 评论 -
深入探索C++对象模型_(3)构造函数
默认构造函数(或称缺省构造函数)默认构造函数就是没有任何参数的构造函数合成默认构造函数传统认识认为,如果我们自己没有定义任何构造函数,那么编译器就会为我们隐式自动定义一个默认的构造函数事实上,"合成的默认构造函数"只有在必要的时候,编译器才会为我们编译出来,非必要的时候不会合成必要的时候:该类不包含任何构造函数,但包含一个类成员,这个类成员有缺省的构造函数(这种情况下合成一个缺省构造函数的目的是:调用类成员的默认构造函数),此时编译器合成一个默认构造函数,在这个函数里调用类成员的默认构原创 2021-04-01 11:19:04 · 98 阅读 · 0 评论 -
深入探索C++对象模型_(2)派生类对象的内存布局
先推荐一个在线运行CPP的网页,免去编写CMAKE之苦:Compile and Execute C++ Online派生类对象是包含基类子对象的。如果派生类只从一个基类继承的话,那么这个派生类对象的地址和基类子对象的地址相同。但如果派生类对象同时继承多个基类,那么大家就要注意:第一个基类子对象的开始地址和派生类对象的开始地址相同。后续这些基类子对象的开始地址与继承顺序有关调用哪个子类的成员函数,这个this指针就会被编译器自动调整到对象内存布局中 对应该子类对象的起始地址那去..原创 2021-04-01 09:54:45 · 209 阅读 · 0 评论 -
深入探索C++对象模型_(1)类对象占用的空间
空类占用的空间空类对象占用的空间为1个字节#include <iostream>using namespace std;class A {};int main() { cout << "size of an empty class is: " << sizeof(A); return 0;}上面的例子输出为: size of an empty class is 1为什么空类占用空间为1?第一种解释: 看看隔壁的 Go,struct{}原创 2021-03-31 10:50:00 · 363 阅读 · 0 评论 -
gcc、g++升级与多版本管理
gcc升级gcc多版本管理原创 2021-02-08 08:36:12 · 289 阅读 · 0 评论 -
STL学习:vector篇
参考代码内部定义重点的定义:///元素类型typedef T value_type;///迭代器typedef T* iterator; typedef const T* const_iterator;//底层const(const在*号左边),迭代器本身能被修改,迭代器所指之物不可修改typedef reverse_iterator_t<T*> reverse_iterator;typedef .原创 2021-02-04 16:59:18 · 218 阅读 · 0 评论 -
字符串匹配算法:暴力匹配
int BruteForceMatching(const string& target, const string& pattern) { int t = 0, p = 0; for (; t < target.size() && p < pattern.size(); t++) { if (target[t] == pattern[p]) p++; else p = 0; } if (p == p.原创 2021-01-11 16:25:16 · 166 阅读 · 0 评论 -
字符串匹配算法:KMP(c++实现)
参考文献:如何更好地理解和掌握 KMP 算法?vector<int> get_next_kmp(const string& pattern) { int i = -1, j = 0; vector<int> next(pattern.size(), -1); while (j < pattern.size()) { if (i == -1 || pattern[i] == pattern[j]) next[++j] = ++原创 2021-01-11 16:05:28 · 156 阅读 · 0 评论 -
CGI程序sleep后无法打印信息到网页
/* * adder.c - a minimal CGI program that adds two numbers together *//* $begin adder */#include "csapp.h"int main(void) { char *buf, *p; char arg1[MAXLINE], arg2[MAXLINE], content[MAXLINE]; int n1=0, n2=0; /* Extract the two argume.原创 2020-12-16 10:31:19 · 157 阅读 · 0 评论 -
类对象模型实验:类数据成员大小
#include <iostream>#include <vector>using namespace std;/** c++对象内存模型 **////一、空类字节大小class EmptyClass {public:};///二、对象类型占用字节大小//结构体的有效对齐值的确定://1)当未明确指定时,以结构体中最长的成员的长度为其有效值//2)当用#pragma pack(n)指定时,以n和结构体中最长的成员的长度中较小者为其值。数据成员、结构体和类.原创 2020-12-02 20:17:22 · 144 阅读 · 0 评论 -
构造函数的奇怪现象
定义了一个航迹推算的类,无参构造函数如下:DeadReckoning::DeadReckoning() : _T_w_0_current(Transform()), _T_w_6_current(Transform()), _T_w_0_last(Transform()), _T_w_6_last(Transform()), _encoder_data(EncoderDataType()), _kinem.原创 2020-09-27 16:19:35 · 114 阅读 · 0 评论 -
2020-09-21
类型转换类型转换coding style优秀的代码规范原创 2020-09-21 08:31:44 · 57 阅读 · 0 评论 -
QT杂记
QT核心机制QT核心机制信号与槽窗口类的弹出窗口弹出子窗口后禁用主窗口close自动释放空间点击红叉的event物理通信Qt串口编程串口读取/写一个字节QML的Qt进阶之路事件QCloseEvent计时计时...原创 2020-09-19 15:31:06 · 84 阅读 · 0 评论 -
c程序调用c++文件
cmake_minimum_required(VERSION 3.5)project(sayHello)set(CMAKE_CXX_STANDARD 14)set(CMAKE_BUILD_TYPE "Release")add_library( hello SHARED ${PROJECT_SOURCE_DIR}/src/hello.cpp)#要写在INCLUDE_DIRECTORIES(/usr/local/include/hello)和TARGET_LINK_LIBRARIES(hel.原创 2020-05-20 09:33:04 · 460 阅读 · 0 评论 -
c++基本功:文件输入输出
读取文件写到一个vector里(将ifstream传进一个函数里):#include <fstream>#include <string>using namespace std;/*todo:怎么知道到文件尽头?怎么判断空行?*/void getTxt(istream& is, vector<string>& s){ str...原创 2019-12-03 20:52:31 · 83 阅读 · 0 评论 -
c++基本功:assert和调试信息
#define DEBUG 1void show(vector<string>& s){ if(s.empty())return; else{ assert(DEBUG);#ifdef DEBUG cout <<"In file:"<< __FILE__ << ",line :" <...原创 2019-11-29 08:44:17 · 252 阅读 · 0 评论 -
C++基本功:变形参函数
/*inittializer_list*/void showSum(initializer_list<int> lst){ int sum = 0; for(initializer_list<int>::iterator i = lst.begin();i != lst.end();i++){ sum+=*i; } cou...原创 2019-11-29 08:43:29 · 191 阅读 · 0 评论 -
C++基本功:trhow,catch
#include <iostream>#include <string>#include <vector>#include <cctype>#include <stdexcept>using std::runtime_error;using namespace std;/*throw, catch*/int main...原创 2019-11-28 22:07:44 · 210 阅读 · 0 评论 -
C++基本功:String
#include <iostream>#include <string>#include <cctype>using namespace std;/*string*/int main() { //1.初始化 string s1; string s2 = "s2"; string s3 = s1; stri...原创 2019-11-28 09:21:51 · 103 阅读 · 0 评论 -
C++ std::move 以及左、右值引用
https://www.e-learn.cn/content/qita/2469922原创 2019-08-25 20:15:39 · 202 阅读 · 0 评论 -
c++关于拷贝构造函数的疑问
有一些博文提到,c++中的默认拷贝构造函数都是浅拷贝,即是通过该函数拷贝的对象只复制了原对象的指针(https://blog.csdn.net/caoshangpa/article/details/79226270);但我在Qt上用以下代码测试时,得到如下结果:#include <iostream>class a{public: int i;// a(){...原创 2019-08-25 09:25:09 · 140 阅读 · 0 评论