
C/C++
PGEva
芝兰生于深林,不以无人而不芳;君子修道立德,不谓困厄而改节.
展开
-
ubuntu安装StarQuant
【代码】ubuntu安装StarQuant。原创 2024-09-19 13:42:24 · 457 阅读 · 0 评论 -
Linux下使用hashtable引入的头文件
ubuntu16.10下测试使用hashtable引入的头文件,最近在学习STL源码剖析的时候,在使用库里面的hashtable的时候,遇到了很多问题,通过在网上的搜索,最终找到了答案,特此发帖,以防不时之需。。。。。。。 1 #include <iostream> 2 3 using namespace std; 4 using namespace __gnu_cxx; 5原创 2017-08-03 09:48:19 · 1182 阅读 · 3 评论 -
遍历二叉树的各种操作(非递归遍历)
点击这里转载 2017-08-18 21:20:13 · 405 阅读 · 0 评论 -
请教switch内部的变量定义问题?
这两篇讲述的很详细!!!!!!! 知乎传送门请点击 博客传送门原创 2017-08-13 21:25:22 · 574 阅读 · 2 评论 -
goto语句的“跳跃”问题
在对节目信息添加到数据库的线程中,使用了Goto语句,出现error C2362: initialization of ‘var’ is skipped by ‘goto ItemAdd’。这句话是指在执行 goto语句时跳过了变量var的初始化,原因在于C/C++规定,当程序从一个程序块1(局部变量var未定义),使用goto语句跳跃到程序块2的时候, 如果此时该变量已经声明且已经定义,这时候转载 2017-08-13 21:30:02 · 1885 阅读 · 0 评论 -
对于RTTI机制的理解
前言 RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运行时确定对象类型的方法。RTTI并不是什么新的东西,很早就有了这个技术,但是,在实际应用中使用的比较少而已。而我这里就是对RTTI进行总结,今天我没有用到,并不代表这个东西没用。学无止境,先从typeid函数开始讲起。 typeid函数 typeid的主要作用就是让用户知道当前的变量是什原创 2017-08-21 20:10:43 · 517 阅读 · 0 评论 -
对文件读取的几种方法
1.系统调用 1 #include <sys/types.h> 2 #include <sys/stat.h> 3 #include <fcntl.h> 4 #include <unistd.h> 5 6 #include <string.h> 7 8 9 #include <iostream> 10 11 using namespace std; 12 1原创 2017-08-07 15:46:12 · 508 阅读 · 0 评论 -
KMP算法
点击传送门1 点击传送门2原创 2017-08-14 20:27:16 · 302 阅读 · 0 评论 -
C++操作MySQL出现中文乱码问题
*解决方案:* 在连接到数据库后加上这么一句 linux环境 mysql_query(connection, “SET NAMES UTF8”); windows环境 mysql_query(connection, “SET NAMES GB2312”); 注意connection为: MYSQL *connection;...原创 2018-03-30 14:16:55 · 2240 阅读 · 1 评论 -
RB树(红黑树)插入以及删除
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。 红黑树和AVL树类原创 2017-07-25 10:23:39 · 1561 阅读 · 0 评论 -
AVL树实现(插入删除)
在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 “An algorithm for t原创 2017-07-25 10:08:29 · 748 阅读 · 0 评论 -
BST(线索二叉树实现)
BST树是学习树结构中最基础的数据结构,也是通向AVL树和RB树的基础,用来学习非常的不错。好了废话不多说,直接代码实现: 项目地址:这里 BinarySearchTree.h 1 #ifndef _BINARYSEARCHTREE_H 2 #define _BINARYSEARCHTREE_H 3 4 #include<iostream> 5 #include<st原创 2017-07-25 09:49:56 · 628 阅读 · 0 评论 -
题目:求1+2+...+n,要求不能使用乘除法,for,while,if,else,switch,case等关键字及条件判断语句(A?B:C)
这个问题本身没有太多的实际意义,但不少面试官认为这个可以考察应聘者发散思维能力的题目,而发散思维能够反映出应聘者知识面 的宽度,以及对编程相关技术理解的深度。 通常求1+2+..+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思想,由于已经明确限制for和while的使用,循环已经不能再用了。 递归函数也需要用if语句或者条件判断语句来判断是继续递归下去还是终止递归,但现在题原创 2016-10-28 15:19:11 · 1510 阅读 · 0 评论 -
了解new_handler的行为 set_new_handler
当operator new无法满足某一内存分配需求的时候,它会抛出异常。以前它会返回一个NULL指针,某些旧式编译器也还会那么做。现在也可以取得旧行为。 当operator new抛出异常来反映一个未获满足的内存需求之前,它会调用一个客户制定的错误处理函数,一个所谓的new_handler.为了指定这个"用于处理内存不足"的函数,客户必须调用set_new_handler,那是声明的一个原创 2016-11-11 22:24:07 · 582 阅读 · 0 评论 -
题目: 如下为类型CMyString的声明,请为该类型添加赋值运算符函数.
赋值运算符函数 1.题目: 如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString { public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); private: char* m_pData; }; 在定义一个原创 2016-11-27 18:27:14 · 819 阅读 · 0 评论 -
C++基础知识
定义一个空的类型,里面没有任何成员变量和成员函数,对该类型求sizeof,得到的结果是多少? 答案是1 为什么不是? 空类型的实例中不包含任何信息,本来求sizeof应该是,但是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用躲闪内存,有编译器决定,Visual Studio中每个空类型的实例占用1字节的空间 如原创 2016-11-27 18:31:42 · 346 阅读 · 0 评论 -
一元多项式的求值问题
list.h #ifndef _LIST_H #define _LIST_H #include using namespace std; typedef struct Data { float coef; //系数 int expn; //指数 }Elemtype; class List; class ListNode { friend class List; public:原创 2016-12-19 22:48:22 · 1146 阅读 · 0 评论 -
类的静态成员函数和静态成员变量的使用
C++类静态成员与类静态成员函数 当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。 静态数据成员的用途之一是统计有多少个对象实际存在。 静原创 2017-03-20 21:55:09 · 881 阅读 · 0 评论 -
malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不原创 2017-03-20 22:05:25 · 259 阅读 · 0 评论 -
C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使原创 2017-04-26 15:39:01 · 361 阅读 · 0 评论 -
理解各种不同含义的new和delete
人们好像喜欢故意使C++语言的术语难以理解,比如new操作符(new operator)和操作new操作(operator) 例如: string *ps = new string("Memory Management"); 这时候你所使用的new是new操作符。这个操作符就像sizeof一样是语言内置的,你不能改变他的含义,它的功能总是一样的。它要完成的功能分成两个部分。第一部分是原创 2016-11-09 10:33:09 · 488 阅读 · 0 评论