C++
tostq
邮箱:tostq216@163.com
展开
-
【C++研发面试笔记】1. C++常见关键字含义
C++研发工程师,找工作,笔试,面试,算法,学习,笔记,C++常见关键字含义,inline,staic, const, virtual虚数含义,extern原创 2016-10-01 21:36:26 · 3859 阅读 · 1 评论 -
【C++研发面试笔记】16. 基本数据结构-队列queue与栈stack
【C++研发面试笔记】16. 基本数据结构-队列queue与栈stack16.1 STL中stack实现stack 模板类的定义在头文件中。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。 stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必原创 2016-10-03 21:01:22 · 1158 阅读 · 0 评论 -
【C++研发面试笔记】17. 基本数据结构-图结构
【C++研发面试笔记】17. 基本数据结构-图结构17.1 拓扑排序17.1.1 拓扑排序定义对有向无环图G进行拓扑排序,是指将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。这样的线性序列称为满足拓扑次序的序列,简称拓扑序列。得到这个该集合上的一个全序序列(即所有的顶点都在序列中)的操作称之为拓扑排序。排序结果不唯一。17.1.2原创 2016-10-03 21:24:45 · 882 阅读 · 0 评论 -
【C++研发面试笔记】18. 常用算法-查找算法
【C++研发面试笔记】18. 常用算法-查找算法查找算法一般是跟排序算法相关,本节主要介绍五类常用查找算法。其中,顺序查找是纯粹的查找方法,二分查找是依据已排序序列进行的快速查找方法,后三种都多少涉及到先排序再查找的策略。18.1 顺序查找算法顺序查找没有什么特别之处,就是从头到尾搜索一遍,算法复杂度为O(n)。18.2 二分查找算法二分查找算法又名折半查找,原理就是二分法,其一般针对于顺序排列的数原创 2016-10-03 21:40:27 · 1099 阅读 · 0 评论 -
【C++研发面试笔记】19. 常用算法-排序算法
【C++研发面试笔记】19. 常用算法-排序算法19.1 排序算法分类比较排序和非比较排序: 常见的排序算法都是比较排序,非比较排序包括计数排序、桶排序和基数排序,非比较排序对数据有要求,因为数据本身包含了定位特征,所有才能不通过比较来确定元素的位置。 比较排序的时间复杂度通常为O(n^2)或者O(nlogn),比较排序的时间复杂度下界就是O(nlogn),而非比较排序的时间复杂度可以达到O(n原创 2016-10-03 23:12:04 · 3280 阅读 · 1 评论 -
【C++研发面试笔记】20. 常用算法-路径搜索算法(图算法)
【C++研发面试笔记】20. 常用算法-路径搜索算法(图算法)20.1 BFS与DFS最大流最小割定理,最大流问题,最小生成树问题,Prim算法,Dijkstra算法是典型的单源最短路径算法。Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。Bellman-Ford算法是求含负权图的单源最短路径算法。SPFA算法原创 2016-10-04 11:19:10 · 8466 阅读 · 0 评论 -
【C++研发面试笔记】21. 常用算法-STL中常用算法函数
【C++研发面试笔记】21. 常用算法-STL中常用算法函数1、for_each(容器起始地址,容器结束地址,要执行的函数) 指定函数依次对指定范围内所有元素进行迭代访问,返回所指定的函数类型。2、查找find InputIterator find (InputIterator first, InputIterator last, const T& val); 前闭后合的区间 begin,en原创 2016-10-04 11:24:17 · 1602 阅读 · 0 评论 -
【C++研发面试笔记】22. 常用算法-字符串查找算法
22. 常用算法-字符串查找算法22.1 KMP算法,KMP字符串匹配算法,BM算法,Rabin-Karp算法,有限自动机算法,Boyer-Moore字符串搜索算法。KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)原创 2016-10-04 13:36:31 · 3364 阅读 · 0 评论 -
【C++研发面试笔记】15. 基本数据结构-字符串string
【C++研发面试笔记】15. 基本数据结构-字符串string字符串是一类非常常见的数据结构,本篇主要介绍在STL中的string容器和一些标准库中常用的相关函数。15.1 STL的string#include <string> 在标准 C++ 中,字符串类 string 由 C++ STL 实现,提供丰富的字符串的处理功能。string 是一个基于字符的序列容器,具有vector向量容器一样的内原创 2016-10-03 19:12:28 · 1186 阅读 · 0 评论 -
【C++研发面试笔记】14. 基本数据结构-查找表与并查集
【C++研发面试笔记】14. 基本数据结构-查找表与并查集,Hash表,哈希表、STL,set, map, unordered_map, unordered_set原创 2016-10-03 18:47:15 · 1534 阅读 · 0 评论 -
【C++研发面试笔记】13. 基本数据结构-哈夫曼树、树堆及其他树簇
【C++研发面试笔记】13. 基本数据结构-哈夫曼树、树堆及其他树簇,斐波那契堆,van Emde Boas树,字典树,线段树等原创 2016-10-03 17:50:45 · 1690 阅读 · 0 评论 -
【C++研发面试笔记】2. 多态性
【C++研发面试笔记】2. 多态性2.1 多态性来源多态性指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。 最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而实现不同的方法。如果没有使用虚函数的话,即没有利用C++多态性,则利用基类指针调用相应的函数的时候,将总被限制在基类函数本身,而无法调用到子类中被重写过的函数。原创 2016-10-01 22:27:38 · 1412 阅读 · 0 评论 -
【C++研发面试笔记】3. 命名空间与内存管理
【C++研发面试笔记】3. 命名空间与内存管理3.1 命名空间命名空间就是将多个变量和函数等包含在内,使其不会与命名空间外的任何变量和函数等发生重命名的冲突。 在其中的很多实例中,都有这么一条语句:using namespace std;,即使用命名空间std,其作用就是规定该文件中使用的标准库函数都是在标准命名空间std中定义的。 3.1.1 使用命名空间解决名字冲突修改两个头文件,把在头文件原创 2016-10-01 22:42:37 · 2125 阅读 · 0 评论 -
【C++研发面试笔记】4. 指针与引用
【C++研发面试笔记】4. 指针与引用4.1 引用引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名。 int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名4.1.1 引用的特点(1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进原创 2016-10-01 23:03:33 · 869 阅读 · 0 评论 -
【C++研发面试笔记】5. C++ STL数据结构
【C++研发面试笔记】5. C++ STL数据结构(容器)5.1 常见数据结构(容器)分类vector:(连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,可能重新分配更大空间,拷贝的性能开销较高。deque:(小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以原创 2016-10-02 18:12:46 · 3783 阅读 · 0 评论 -
【C++研发面试笔记】6. 基本数据结构-数组
【C++研发面试笔记】6. 基本数据结构-数组 数组可以说是我们最初接触到的数据结构,其结构非常简单,主要是由相同数据类型的元素数据按一定顺序排列的集合,这个集合用一个名字命名,称为数组名,而通过编号来区分集合中的元素,称为下标。数组主要分为两类:静态数组和动态数组 两者的区别如下:对静态数组名进行sizeof运算,得到的是整个数组占用空间大小;而对动态数组名进行sizeof运算,结果是数组的原创 2016-10-02 19:31:27 · 1511 阅读 · 0 评论 -
【C++研发面试笔记】7. 基本数据结构-单链表
【C++研发面试笔记】7. 基本数据结构-单链表7.1 STL中的ListLists将元素按顺序储存在链表中。与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢(其也可以通过[]的方式来访问,不过速度较vector慢了许多)。7.1.1 List相关成员函数/* 插入与删除 */pop_back() //删除最后一个元素 pop_front() //删除第一个元素原创 2016-10-02 19:56:54 · 935 阅读 · 0 评论 -
【C++研发面试笔记】8. 基本数据结构-二叉堆
【C++研发面试笔记】8. 基本数据结构-二叉堆最大堆、最小堆分别指堆顶为最大或最小元素的堆,也叫大顶和小顶堆。堆是一种基本的抽象数据类型,一般用二叉树表示并且递归定义,堆顶为树的根,保证树或者子树的根永远比子节点大或者小。 堆的一个经典的实现是完全二叉树。这样实现的堆成为二叉堆。完全二叉树是增加了限定条件的二叉树。假设一个二叉树的深度为n。为了满足完全二叉树的要求,该二叉树的前n-1层必须填满,原创 2016-10-02 20:14:38 · 826 阅读 · 0 评论 -
【C++研发面试笔记】9. 基本数据结构-二叉查找树BST
【C++研发面试笔记】9. 基本数据结构-二叉查找树BSTBST树即二叉搜索树,其满足如下条件: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;9.1 BST树的搜索从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; 否则如果查询关键字比结点关键字小,就进入原创 2016-10-02 20:29:31 · 912 阅读 · 0 评论 -
【C++研发面试笔记】10. 基本数据结构-平衡二叉搜索树AVL
【C++研发面试笔记】10. 基本数据结构-平衡二叉搜索树AVL10.1 AVL的定义定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为平衡二叉树. 平衡因子BF=左子树深度-右子树深度. 平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。10.2 AVL的实现10.2.1 结构10原创 2016-10-02 21:52:02 · 1240 阅读 · 0 评论 -
【C++研发面试笔记】11. 基本数据结构-红黑树RBT
【C++研发面试笔记】11. 基本数据结构-红黑树RBT上一节,我们提到了为了解决二叉查找树不平衡问题,我们引入了AVL树,AVL是严格平衡树,但在增加或删除节点时,需要非常多的旋转操作。因此这一节我们介绍红黑树,红黑是弱平衡的,用非严格的平衡来换取增删节点时候旋转次数的降低,其在在增加或删除节点时,旋转操作要比AVL树更少;因此当搜索的次数远远大于插入和删除,则选择AVL树,如果搜索,插入删除次数原创 2016-10-03 12:09:57 · 2618 阅读 · 0 评论 -
【C++研发面试笔记】12. 基本数据结构-B树簇
【C++研发面试笔记】12. 基本数据结构-B树簇本节所说的B树并不是前面所说的二叉树(Binary Tree),而一类多路搜索树(B-Tree),其是为了解决二叉树只有两路的情况而提出,广泛应用于文件搜索(比如文件的目录树)。这类树主要分为B-树、B+树、B*树等等。12.1 B-树12.1.1 B-树的结构B-树是一种平衡多路搜索树(并不是二叉的),其特征如下:定义任意非叶子结点最多只有M个儿原创 2016-10-03 14:13:19 · 974 阅读 · 0 评论 -
【用Python学习Caffe】5. 生成solver文件
5. 生成solver文件网络训练一般是通过solver来进行的。对于caffe来说,其是通过solver文件来生成solver训练器进行网络训练及测试的,该solver文件中包含了训练及测试网络的配置文件的地址,及相关训练方法及一些训练的超参数,该文件一般不是很大,可以直接在一些solver.prototxt文件上更改。也可以通过Python结合caffe_pb2.SolverParameter(原创 2017-06-22 22:17:28 · 3348 阅读 · 0 评论