C++
飞翔的荷兰橙
牛厂程序员一枚,很懒但还是要上班
展开
-
结构体和结构体指针
结构体C语言中的结构体在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 定义与声明结构体的定义如下所示,struc...原创 2018-04-24 22:43:14 · 15842 阅读 · 3 评论 -
两个链表公共节点
test原创 2018-06-06 23:10:41 · 1047 阅读 · 0 评论 -
堆排序
堆排序原创 2018-06-08 17:13:42 · 585 阅读 · 0 评论 -
二维数组的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析:矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时。右移要查找数字比左下角数字小时,上移。 例矩阵: 1 2 3...原创 2018-06-01 22:07:25 · 157 阅读 · 0 评论 -
时间复杂度
时间复杂度原创 2018-06-15 23:10:38 · 199 阅读 · 0 评论 -
空间复杂度
空间复杂度原创 2018-06-15 23:11:30 · 394 阅读 · 0 评论 -
多态性和虚函数
多态相同的方法或者函数调用为不同的对象所接受时可能导致的不同行为,这种现象称为类的多态性。具体的说,它主要表现在函数调用时,实现一种接口,多种方法,多态性是面向对象程序设计的另一个重要特征。C++支持两种多态性,编译时多态性和运行时的多态性。编译时的多态性指的是属于某个类的不同对象,或不同环境下的同一对象,调用了名称相同的成员函数,所完成的功能却不相同,这是一种静态多态性,因为编译器在对源...原创 2018-07-01 11:16:53 · 5893 阅读 · 2 评论 -
C++的类模板
什么是类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。 模板的类型参数由关键字class 或关键字typename 及其后的标识符构成。在模板参数表中关键字class 和typename 的意义相同。(在标准C++之前关键字typename...原创 2018-07-08 17:43:02 · 623 阅读 · 0 评论 -
【C++]标准模板库STL
#原创 2018-06-20 17:27:48 · 153 阅读 · 0 评论 -
VS+搭配MySQL小项目实践
用vs2013连接MySQL数据库原创 2018-07-16 16:18:33 · 2766 阅读 · 2 评论 -
[STL]Set和Multisets
map原创 2018-07-30 10:45:19 · 1190 阅读 · 0 评论 -
[STL]Maps和Multimaps
Maps原创 2018-07-31 17:12:00 · 887 阅读 · 2 评论 -
[C/C++]中的关键字
今天我们来说一说C++中不那么起眼的关键字原创 2018-08-13 14:41:37 · 1074 阅读 · 0 评论 -
剑指offer[11-15]
11.输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public:void reOrderArray(vector<int> &array){ for (int i = 0; i < array.s...原创 2018-08-08 22:22:57 · 173 阅读 · 0 评论 -
【STL】Vector
Vector原创 2018-06-20 22:19:33 · 128 阅读 · 0 评论 -
[C++】文件操作
文件操作C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文件1.建立联系ofstream examplefile("example.txt");//声明...原创 2018-05-29 22:44:57 · 297 阅读 · 0 评论 -
翻转字符串
题目输入:i am a student. 输出:student. a am i题目分析先总体反转,然后逐个单词反转,首先,将字符串完全翻转一次,得到.tneduts a ma i。然后设置两个指针,对单词进行翻转,也就是局部翻转.代码如下:...原创 2018-06-11 23:06:39 · 122 阅读 · 0 评论 -
List&Listiterator
List.h#pragma once#define _CRT_SECURuE_NO_WARNINGS 1#include<iostream>using namespace std;#include<cassert>//nodetemplate<class T>struct ListNode{ ListNode(const T&a...原创 2018-02-19 14:25:29 · 779 阅读 · 0 评论 -
[C++]浅述多态
什么是多态多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的情形。 我们把具有继承关系的多个类型称为多态类型。 引用或指针的静态类型与动态类型不同这一事实正是c++语言支持多态性的根本所在。 1.类型:静态多态和动态多态 静态多态主要是函数重载和泛型编程,而动态多态是虚函数和指向基类的指针和引用 静态多态: 编译器在编译期间完...原创 2017-12-05 15:36:54 · 773 阅读 · 1 评论 -
虚拟菱形继承
什么是继承?简单的说,继承的使用就是为了代码复用。继承:①继承机制:是为了扩展原有类,增加新的功能。 ②继承的定义格式: 子类名:继承方式 父类名 ③继承方式有三种:private(私有继承) protected(保护继承) public(公有继承); 公有继承:基类中公有成员和保护成员在派生类中的访问权限不发生改变,基类中的私有成员在派生中是不可访问的,虽然继承下来了...原创 2017-12-01 16:51:42 · 719 阅读 · 0 评论 -
[C++]实现顺序表和单链表
顺序表:#include <assert.h>#include <iostream>using namespace std;typedef int Datatype;class SeqList{public: SeqList() :_array(NULL) ,_size(0) ,_capacity(0) { } SeqList(...原创 2017-11-24 14:48:28 · 348 阅读 · 0 评论 -
[C++]深拷贝与浅拷贝
浅拷贝定义:浅拷贝,指的是在对象复制时,只是对对象中的数据成员进行简单的复制,默认拷贝构造函数执行的也是浅拷贝。简单的说,浅拷贝就是值传递,将源空间里面的内容复制到目标空间中。 缺陷:多个指针可能共用管理一块内存空间,在释放时,导致对一块空间的多次释放,造成内存泄露。深拷贝定义:在“深拷贝”的情况下,对于对象中动态成员,就不能仅仅简单地赋值了,而应该重新动态分配空间。浅拷...原创 2017-11-15 14:16:32 · 205 阅读 · 0 评论 -
[C++]This指针
This指针定义在建立对象时,系统会为每一个对象分配独立的存储空间,也就是给每个对象中的数据成员都分配有自己独立的存储空间。如果对同一个类定义n个对象,则有n组同样大小的空间以存放对象中的数据成员。但对于成员函数来说,对象中的数据成员。一个函数的代码段在内存中只有一份。也就是说,函数的代码段在内存中只有一份。也就是说,同一个类中的不同对象在调用自己的成员函数时,一个类中的不同对象在调用自己的成...原创 2017-10-26 17:37:45 · 184 阅读 · 0 评论 -
链表的面试题(二)
完成链表的以下操作:// 使用冒泡对单链表进行排序 void BubbleSort(PNode pHead) // 合并两个已序链表,合并之后新链表依然有序 PNode MergeList(PNode pHead1, PNode pHead2) // 查找无头单链表的倒数第K个结点 PNode FindLastKNode(PNode pHead, int K); // ...原创 2017-10-15 19:58:57 · 3352 阅读 · 0 评论 -
链表的面试题(一)
题目:// 逆向打印单链表 void PrintListFromTail2Head(PNode pHead); // 逆向销毁单链表 void DestroyListFromTail2Head(PNode* pHead); // 删除单链表的非尾结点 void DeleteNotTailNode(PNode pos); // 非头结点前插入data void Ins...原创 2017-10-15 19:52:49 · 4255 阅读 · 0 评论 -
拷贝构造函数和赋值函数
拷贝构造函数拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。调用拷贝构造函数的...原创 2018-04-25 10:59:18 · 1384 阅读 · 0 评论 -
[C++]的标准输入流
CINcin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕。 在理解cin功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要...原创 2018-05-13 22:57:27 · 1041 阅读 · 0 评论 -
[C++]输出流
COUT函数在C语言中,我们一般用printf()函数来进行输出,通过输出字符串中的格式说明符(如%4.2d)可以很容易地格式化输出。而在C++中,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时也需要数据按我们指定的格式输出,比如以十六进制的形式输出一个整数等。有两种方法可以达到格式化输出的目的,一种是使用流对象的有关成员函数,还有一种是使用控制符方法,这两种方法...原创 2018-05-14 22:50:40 · 533 阅读 · 0 评论 -
[C++]面试题(一)
1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 全局变量,static变量。 (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3)用...原创 2018-05-21 23:00:59 · 456 阅读 · 0 评论 -
[C++]面试题(二)
26,C++中哪些函数不能被声明为虚函数? 答:普通函数(非成员函数),构造函数,内联成员函数、静态成员函数、友元函数。 (1)虚函数用于基类和派生类,普通函数所以不能 (2)构造函数不能是因为虚函数采用的是虚调用的方法,允许在只知道部分信息的情况的工作机制, 特别允许调用只知道接口而不知道对象的准确类型的方法,但是调用构造函数即使要创建一个对象, 那势必要知道对象的准确类型。...原创 2018-05-21 23:05:01 · 578 阅读 · 0 评论 -
[面试题]找出链表倒数第k个节点
题目描述输入一个链表,输出该链表中倒数第k个结点。 思路:设置两个指针指向头节点分别为p,和ptr; 让p指针先走k-1次,然后让ptr跟着p指针一直遍历下去直到遍历完整个链表,这时ptr指针就指向倒数第k个节点了。 有些兴趣的同学可以仔细琢磨。很有意思。 附上我的代码:#include<iostream>using namespace std;typedef...原创 2018-06-03 00:23:28 · 283 阅读 · 0 评论 -
约德尔将军-提莫测试
非常爱玩联盟,看到一道关于联盟的题就做了。。题目描述兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。 说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的0...原创 2018-08-16 22:56:31 · 463 阅读 · 0 评论