这一周主要就是在linux下进行c++的开发,以此为契机记录下遇到的问题....有时候拉取代码不成功,可以ssh/https两种链接都试试 代码编写 vim进行临时的一些修改,vscode用于较大的项目,VS Studio用于windows下的调试 目前主要使用vscode,开发环境是无界面的linux...libc库版本 查看log 一般程序会输出log到磁盘文件,想要实时监控日志文件的更新内容,可以使用tail -f filename命令,它会在文件内容有更新时将结果输出到命令窗口 调试 使用gdb调试C+...打断点到文件的某一行,也可以直接打到某函数位置 n 下一步 c 继续运行,直到程序结束或者遇到断点 s 单步调试 r 重头运行程序 p 打印变量内容 help 查看命令提示 性能分析 gprof工具 linux...callgrind.out.xxx的文件 kcachegrind.exe 打开上一步生成的文件,可以看到函数运行耗时,以及调用的流程图 知道哪个函数或者哪个操作最耗时,再进一步分析是数据结构选型不适合还是算法没有达到最优
C++ 标准模板库STL,是一个使用模板技术实现的通用程序库,该库由容器container,算法algorithm,迭代器iterator,容器和算法之间通过迭代器进行无缝连接,其中所包含的数据结构都是目前最优解...,该库既能保证软件代码的高可复用性,又能保证代码具有相当高的执行效率,STL库是ANSI/ISO的C++标准的具体实现,任何标准库的实现都是以源码形式释出的....STL是C++的一部分,STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors...)六个部分,以下案例主要是在学习时对容器的总结笔记,基本上涵盖了关于容器之间,能够想到的任何操作,一次性全部涵盖其中。...主要面向过程提供一些处理函数,而C++库中的string则是基于类实现的更高效的一种字符串处理方法集,类中提供了非常方便的成员函数供我们使用.
AIX上使用的是xlc++编译器,Linux上使用的是g++编译器。对C标准中没有严格定义的行为,两个编译器的处理方式不一定相同,会造成一些bug。...double型变量amt,使用前没初始化amt默认值0.0amt默认值为超大正数,导致程序崩溃增加初始化处理memset(&ret, '\0', sizeof(ret)); 如果AIX是32位版本到Linux
单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include int...该代码可用以下命令编译为可执行文件: $ g++ helloworld.cpp 编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。.../helloworld hello, world 程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。...在大多数系统中,GCC 安装时会安装一名为 c++ 的程序。...下面的命令将由 C++ 源码文件生成汇编语言文件 helloworld.s: $ g++ -S helloworld.cpp 生成的汇编语言依赖于编译器的目标平台。
viewmode=list ———- Accagain 2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力...最优子结构性质为动态规划算法解决问题提供了重要线索。 子问题重叠性质:子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。...动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的效率。...换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又称为无后效性。...XHXJ’s LIS 数位dp+LIS思想 srm div2 1000 状态压缩+LIS poj 1239 Increasing Sequence 两次dp 4、LCS 最长公共子序列,通常o(n^2)的算法
11.2 算法 11.2.1 只读算法 1.find函数 find(起始迭代器,终止迭代器,搜索值) 搜索范围不包含终止迭代器位置,函数返回迭代器类型 #include #include...带有单个目标迭代器的算法 dest 形参是一个迭代器,用于指定存储输出数据的目标对象。算法假定无论需要写入多少个元素都是安全的。...带第二个输入序列的算法 算法同时使用 beg2 和 end2 时,这些迭代器用于标记完整的第二个范围。...11.4.2 算法命名规范 a. 区别带有一个值或一个谓词函数参数的算法版本 很多算法通过检查其输入范围内的元素实现其功能。...这些算法包括 sort 及其相关的算法。 还有一些其他的泛型算法,如 merge、remove、reverse 和 unique,虽然可以用在 list 上,但却付出了性能上的代价。
首先参考 Linux下编译并使用miracl密码库 该博文在linux下编译Miracl库。 编译完了,自然是要用的,下面介绍两种在C程序中使用miracl库的方法。...linux64编译代码如下: rm *.exe rm miracl.a cp mirdef.h64 mirdef.h gcc -c -m64 -O2 mrcore.c gcc -c -m64 -O2 mrarth0
空间复杂度: O(1) 稳定性: 稳定 希尔排序 希尔排序是第一个突破排序时间复杂度O(n^2)d的算法,又称缩小增量排序法。...,归并排序三种算法中唯一稳定的一个。...堆排序 堆排序是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。所以在理解堆排序之前,要了解堆的概念: 堆分为大根堆和小根堆,是完全二叉树。...空间复杂度: O(1) 稳定性: 不稳定 总结 ?...所有排序算法中用的最多的是堆排序,快速排序与归并排序,在这三种算法中: 如果从空间复杂度来考虑的话,首选堆排序,其次是快速排序,最后是归并排序。 如果从稳定性考虑,选择归并排序(稳定)。
排序算法总结 排序,排序,排序 ( ఠൠఠ )ノ 插入排序 核心思想: 将待排序的元素插入到已排好序的序列中 只有一个元素时视为排好序 直接插入排序 def insert_sort(nums: list
0、c++期末总结 0.1、程序的构成 一个C++程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。...0.2、程序的编写与实践 用高级语言编写的程序称为“源程序”,C++的源程序是以.cpp作为后缀的 对源程序(.cpp)进行编译 ➡ 目标程序(.obj) ➡ 二进制文件(.exe) 编写C++程序一般需要经过的几个步骤是...<表达式n cout<<a,b,c; //错误,不能一次插入多项 cout<<a+b+c; //正确,这是一个表达式,作为一项 cin>>a>>b>>c>>d; 1.7、变量命名规则 C+...非为三者中运算符最高的 3.算法 3.0判断闰年 int runyear(int x) { if ((x % 4 == 0) && (x % 100 !...b % min == 0) break; } printf("最大共因数是%d\n", min); return 0; } 辗转相除法:求两个自然数的最大公约数的一种方法,也叫欧几里德算法
else root->right = insertIntoBST(root->right, val); return root; } }; 总结
C++面试题总结 编程基础 C++ 内存管理方式 堆、栈、自由存储区、全局/静态存储区、常量存储区 自由存储区存储malloc申请的内存 (1)从静态存储区域分配 。...+中的static关键字的总结 几个复制的声明 void * ( * (*fp1)(int))[10]; //fp1是一个指针,指向一个函数,函数参数为int,函数返回参数是一个指针,指针指向一个数组...在Linux中以.a结尾 动态库(共享库)的代码在可执行程序运行时才载入内存,在编译过程中仅简单的引用,因此代码体积比较小,在程序运行时还需要动态库存在。...在Linux中以.so结尾 当静态库和动态库同名时, gcc命令将优先使用动态库.为了确保使用的是静态库, 编译时可以加上 -static 选项,因此多第三方程序为了确保在没有相应动态库时运行正常,喜欢在编译最后应用程序时加入...对于C++来说,有些操作也不是类型安全的,比如不同类型指针之间可以强制转换(reinterpret cast) 注:C#、Java是类型安全的 C++使用得当,可以远比C更有类型安全性。
本文链接:https://blog.csdn.net/ZY_FlyWay/article/details/102490751 最近在blink看到很多刚学C++的学弟学妹,手有点痒,毕业快5年了,C...写这篇文章回顾下C++我在大学学习时候的误区,希望可以让和我一样的同学少走点弯路。 指针 这是我大学的噩梦,好几个问题一直在脑子里转来转去,虽然老师讲了指针就是一块内存,它可以指向另一个内存。...总结:为了更方便的去使用数据\color{red}{总结: 为了更方便的去使用数据}总结:为了更方便的去使用数据 问题一: 指针指向指针的故事 ---- 其实这个问题挺简单,只是以前被我想复杂了,主要是二维数组的例子
前言: 大家好,今天给大家分享一篇关于 c++ 模板总结概述. 模板(Template)指 C++ 程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。...C++ 的标准库提供许多有用的函数大多结合了模板的观念,如 STL 以及 IO Stream。...模板是 C++ 支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。...五、模板的实例化: 总结一下,C++ 只有模板显式实例化 (explicit instantiation), 隐式实例化 (implicit instantiation) ,特化 (specialization...标准 C++ 要求这样的成员函数只有在被调用或者取地址的时候,才被实例化。用来实例化成员函数的类型,就是其成员函数要调用的那个类对象的类型。
这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。...这条原则可以参照Effective C++[1]的Item 30。...这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也许这就是C++语言中引入引用这个概念的原因吧。 赋值操作符=。...它们不能返回引用,Effective C++[1]的Item23详细的讨论了这个问题。...C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数。
本文由知乎答主我是龙套小果丁提供 前注:笔者在暑假时偶然关注到C++的ABI问题,对此进行了比较长时间的探究。...ABI本身并没有在C++标准中出现过,这导致C++的ABI问题比较混乱;这也是C++相关提案出现的原因——"not controlled by WG21"。事实上C标准也没有这个概念。...具体地,C++的ABI可以分为两个方面,我们也会按两方面讨论: 语言ABI/编译器ABI。 库的ABI(尤其是标准库的ABI)。...具体地,C++由编译器决定的ABI主要包括: 名称修饰/重整(Name mangling):C++具有函数重载、模板、名称空间等,他们在目标文件中应该具有不同的名称,来让可执行文件可以调用到唯一的函数。...这给库程序员造成很大的麻烦,因为C++程序员几乎不可避免使用标准库;如果要兼容所有版本,保险起见就需要每个ABI break的版本都提供新的库。
SLAM算法总结——经典SLAM算法框架总结 SLAM算法总结——经典SLAM算法框架总结 SLAM算法总结——经典SLAM算法框架总结 从研究生接触SLAM算法到现在也有两三年了,期间学习了很多经典的...SLAM算法框架并写了一些相关的博客,本篇博客主要目的是想将这些博客进行一个简单总结用于查漏补缺。...首先,按照我的理解,我梳理了如下一个思维导图,如果读者发现有什么需要补充或者纠正的欢迎随时交流: 按照分类,我们先来讲讲视觉SLAM,视觉SLAM算法相对于激光SLAM算法的特点是信息更加丰富...——ORB SLAM2中关键知识点总结 视觉SLAM总结——SVO中关键知识点总结 视觉SLAM总结——LSD SLAM中关键知识点总结 结合IMU方案: VINS-Mono关键知识点总结——前端详解...VINS-Mono关键知识点总结——边缘化marginalization理论和代码详解 VINS-Mono关键知识点总结——预积分和后端优化IMU部分 学习MSCKF笔记——前端、图像金字塔光流、
一、模拟算法的总结 1、本质:比葫芦画瓢 2、特点:思路较简单,根据题目要求即可,代码量和细节较多 3、解决方法: (1) 模拟算法流程,在草稿纸上进行演算 (2) 认真审题,考虑细节问题和边界情况
前言 本文记录了我对打印算法题的总结。先说说什么事打印算法题,就是按照一定的规则打印二维矩阵。...10 11 12 15 11 7 3 13 14 15 16 16 12 8 4 接下来,将会有几道打印算法题...,先看看各个题目的解法,再来总结一下解题方法 例子 1、旋转正方形矩阵 题目 给定一个整型正方形矩阵matrix,请把该矩阵调整成 顺时针旋转90度的样子。...System.out.print(matrix[x][y] + " "); x++; y--; }while(x = ly); } } 总结...通过以上三道题,我们可以总结出以下观点 1、宏观的角度 我们都是从宏观的角度去思考的,而不是想着发掘每一个点(x,y)和(x', y')的关系转换。
部分算法总结 1.希尔排序 基本思想: 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本...希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。...希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。...;i++) { System.out.print(a[i]+" "); } } 2.归并算法...基本介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治
领取专属 10元无门槛券
手把手带您无忧上云