C++
晨识草
同样都是碳
展开
-
单向链表
tags:C++单向链表本人学院: http://sdcs.sysu.edu.cn/单向链表本人学院 httpsdcssysueducn单向链表的简单操作c注排序是最难理解的也是最难想的单向链表的简单操作(c++)注:排序是最难理解的,也是最难想的#include<iostream>#include<string>#include<sstream>using namespace std;t原创 2016-04-10 18:23:28 · 394 阅读 · 0 评论 -
const and static(小结)
1.const常量数据成员与常量成员函数(1) const数据成员只能够在构造函数的初始化列表中进行初始化,并且初始化后不能够再次作为左值进行赋值操作example:class data {private: const int _data;public: data():_data(0) {} // 对const数据成员进行初始化操作 // 必须用初始化列表};若在原创 2016-05-21 21:38:45 · 378 阅读 · 0 评论 -
polymorphism(多态整理)
复习整理多态,不涉及难点内容,主要是零碎的知识点1.多态的类型(1) 编译时多态:function overloading operator overloading(2) 运行时多态:dynamic binding 动态绑定2.含有虚函数的类称为多态类 只有虚函数才使用的是动态绑定 ,其他的全部都是静态绑定(1) The virtual function of a base will alw原创 2016-05-21 22:28:36 · 275 阅读 · 0 评论 -
static linked list(静态链表,结合数组实现)
一.之前已经写过单向链表和双向链表的指针实现,这是单向链表的数组实现,也称静态实现,即不需要通过new和delete动态管理内存总体与指针的实现相似,利用元素所在数组中的位置作为指针next的依据// 用节点数组实现链表的各种操作// 与指针实现类似#include "list.hpp"#include <string>#include <sstream>#include <asser原创 2016-06-03 19:34:02 · 1077 阅读 · 0 评论 -
stackWithTemplate
重点理解swap, reverse两个函数的实现, 另外任何一个类中涉及到深赋值重点关注拷贝构造函数和clear函数,这两个函数是最容易出内存问题的,new和delete必须成对使用2. 下面是代码的实现#ifndef STACK_H__#define STACK_H__#include<iostream>template<typename T>class Stack {private:原创 2016-06-04 09:27:18 · 341 阅读 · 0 评论 -
double*对象*double
数字*对象 对象*数字可声明为友元函数 friend Vector operator*(const Vector& another, double num) { Vector temp = another; temp.end = temp.beg * num; return temp; } friend Vector operator*(double num, c原创 2016-06-10 14:35:27 · 1222 阅读 · 0 评论 -
next_permutation
题目: For example, if we have two ‘0’s and two ‘1’s, we will have a set with 6 different strings, {0011, 0101, 0110, 1001, 1010, 1100}, and the 4th string is 1001.输入是t:测试次数, n:0的个数, m:1的个数, k:第几个数1. nex原创 2016-06-10 15:52:52 · 631 阅读 · 0 评论 -
小知识点
1.virtualDestructorOfBaseClass#include<iostream>using namespace std;class Basea {public: Basea() { cout << "it is Basea" << endl; } virtual ~Basea() { cout << "destruction of Basea" <<原创 2016-06-16 16:19:30 · 329 阅读 · 0 评论 -
DateAndTime
Date.h#ifndef DATE_H#define DATE_H#include <string>class Date { public: Date(); Date(int y, int m, int d, int h, int mi); int getYear(void) const; void setYear(int year); int getMonth(void)原创 2016-08-16 08:27:42 · 360 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make转载 2016-08-05 22:10:45 · 497 阅读 · 0 评论 -
makefile的编写
1.例子这个代码中总共有三个,分别是test.h test.cpp main.cppmain: main.o test.o g++ main.o test.o -o mainmain.o: main.cpp test.h g++ -c main.cpptest.o: test.cpp test.h g++ -c test.cppclean: rm *.o2.编译过程的原创 2016-08-07 16:20:26 · 443 阅读 · 0 评论 -
Time
时间类的实现注意时间的增加的实现//注意虚函数使用的技巧,以及静态绑定和动态绑定的相关知识//尚未实现枚举类的正确输出//created by catherine on 2016, 04, 08#include<iostream>#include<iomanip>#include<cstring>using namespace std;class Time{private: int原创 2016-08-08 16:56:07 · 246 阅读 · 0 评论 -
Date
日期类的实现注意日期合法的判断的函数和比较时间先后的函数date.h#include<iostream>#include<string>#include<sstream>using namespace std;class Date;ostream& operator<<(ostream& out, const Date& date);istream& operator>>(istream原创 2016-08-08 17:00:37 · 496 阅读 · 0 评论 -
Qt入门----hello
一. Qt的安装参考网址:http://blog.csdn.net/xungjhj/article/details/71600437二. Qt实现最简单的项目Hello打开Qt后创建项目:选择New Project,接下来的根据提示即可项目创建完成后,可以看到总体的框架为:修改main.cpp的内容如下:#include "mainwindow.h"#include <QApplicati...原创 2018-03-06 09:46:39 · 414 阅读 · 0 评论 -
kmp字符串匹配
字符串匹配kmp算法非常高效,朴素匹配算法的复杂度是O(n*m),kmp的复杂度可以达到O(n + m)(n为模板的字符串长度,m为待匹配子串的长度)但是kmp算法理解起来还是需要一定的时间。一. 求next数组对于待匹配的字符串,求它的next并存储在数组中,也即各个长度前缀中前后相同的字符个数。例子:abccab这个字符串的前缀有:a, ab, abc, abcc, abcca, abccab...原创 2018-03-25 21:39:18 · 371 阅读 · 0 评论 -
广度优先搜索(breadth_first search)
广度优先搜索用队列(边进边出)日字形走法(象棋)题目: InputThere are multiple test cases.The first line contains an integer T, indicating the number of test cases.Each test case consists of one line containing two squares sep原创 2016-05-21 15:32:38 · 1434 阅读 · 0 评论 -
stack(using queue)
这道题是利用了两个queue实现stack的基本功能, 较难的地方在于pop 与用map实现multiset有相像之处 难点在于pop,pop也体现了本题用两个queue而不是一个的原因 下面是实现的代码class Stack { public: Stack() { count = 0; } void push(const T& data) {原创 2016-05-21 10:20:01 · 243 阅读 · 0 评论 -
Vector和Set类
tags:C++Vector和Set类这是去往[本人博客](http://blog.sina.com.cn/s/articlelist_5883612447_0_1.html)的地址Vector和Set类vector-ND类n维向量Set类To1.vector-ND类(n维向量)#include<iostream>#include<cstring>#define MAX 51using原创 2016-04-10 18:10:03 · 1038 阅读 · 0 评论 -
单向链表理解
这道链表的题很久之前就做了,上学期也做过类似的链表的题目,相比上学期的完全不懂,到上次做的懵懵懂懂,这几天忙着复习高数其中,但心中一直挂念着这道链表的题还没有搞懂,花了几天的时间,吃饭时候想,起床时候想,总算是把思路理清晰了,很感动!下面先贴上代码:#include#include#includeusing namespace std;typedef struct node原创 2016-04-14 08:41:10 · 342 阅读 · 0 评论 -
warshall's algorithm
[tags] C++ // created by _yun on 2016.4.27用warshall’s算法计算传递闭包(1)时间复杂度为:O(n*n*n) (2)用R的无穷闭包时间复杂度为O(n*n*n*(n - 1))BinaryRelation BinaryRelation::transitiveClosure() const { BooleanMatrix temp(matrix原创 2016-04-27 20:58:44 · 1827 阅读 · 0 评论 -
栈和队列
栈和队列目录栈和队列栈FILO队列循环队列FIFO栈(FILO)栈是后进先出的数据结构。 内存中的栈区处于相对较高的地址,以地址的增长方向为上的话,栈地址是向下增长的,栈中分配局部变量空间,堆区则是向上增长的用于分配程序员申请的内存空间。(1)实现栈的几种简单操作:入栈,出栈,判断栈是否空,是否满(2)入栈和出栈比较重要#include<iostream>#include<algorith原创 2016-04-14 17:52:35 · 1020 阅读 · 0 评论 -
Overloading(小结)
类成员运算符重载(1)类成员操作符重载 c3 = c2 - c1; 该表达式的值为与c3相等的临时对象 (2)不含指针成员的类采用缺省赋值符即可,但是含有指针的类必须自定义赋值符,实现深复制浅复制只是将指针指向另一块内存空间,原来所指向的内存空间将永久性消失,从而出现内存垃圾,不仅如此,还会出现释放同一块内存多次的情况,这是不允许的.因此需要进行深复制,先释放原来的内存空间,然后重新分配内存空原创 2016-05-24 19:12:47 · 365 阅读 · 0 评论 -
中缀表达式借用栈转换为后缀表达式
一、后缀表达式求值 后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下: 1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示: 2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。 3)读到8,将其直接放入栈中。 4)读到“*”,弹出8和5转载 2016-05-24 19:24:50 · 455 阅读 · 0 评论 -
借用栈实现表达式的转换与计算
1. 栈类的声明与定义实现表达式的转换,转换后可以实现计算,此处为实现计算. 如: 1+2, will be changed to 12+, 3*5-1 will be 35*1-, 1+2-3*2-1 will be 12+32*-1- 即只要有 “数字-数字-操作符”的形式就进行计算,同时将新的数入栈,最终即可得到结果struct Node { char entry; Node原创 2016-05-24 19:42:28 · 401 阅读 · 0 评论 -
C语言字符串函数和C++string类中的部分函数的使用
C语言字符串函数1、void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值.2、void *memmove(void *dest, const void *src, size_t count); 从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理. 返原创 2016-05-24 21:27:12 · 579 阅读 · 0 评论 -
Template小结
template<typename T>与template<class T>这两者基本是一样的,只是在C++早期版本,没有typename关键字,所以用class,但后来为了与类分开,所以有了typename,总的这两者可以替换使用,template <typename T>与template<class T>作用相同。用template实现swaptemplate<typename T>void原创 2016-04-17 21:03:33 · 324 阅读 · 0 评论 -
零碎的知识点
1.cast类型转换// 类型转换int main() { char a = 99; // a == 'c' char b = 65; // b == 'A' cout << a << endl << b << endl; cout << (int)('a') << endl; // 'A' 的ascii码是65, 'a'的ascii码是97 int num原创 2016-05-26 20:15:46 · 253 阅读 · 0 评论 -
hangman猜字游戏
hangman猜字游戏记得去年公选haskell函数程序设计的时候老师让我们用haskell 语言实现过这个游戏,当时对于语言学得吃力,所以没有实现好,现在看到这个游戏的实现,觉得些许熟悉……运用了string库函数,包括size(), length(), find(), constructor, operator== and so on.// hangman 猜字游戏// created by原创 2016-05-04 20:43:05 · 1448 阅读 · 0 评论 -
MultiSet(借用map实现multiset的功能)
很不错的题, 有助于理解multiset的具体实际实现过程, 同时熟悉了map 的使用和功能#include <iostream>#include <map>using namespace std;template <typename T>class MultiSet { public: MultiSet() {} MultiSet(const Mul原创 2016-05-16 20:03:48 · 460 阅读 · 0 评论 -
算法比较(encapsulation)
我的算法: 最简单的for循环和数组实现题目要求:【Test input】quit【stdout output】No entries. Bye【Test input】hello world4dangerous5human2quit【stdout output】Thank you. You entered the following 3 ratings:Rating Book4 hello world原创 2016-05-16 21:26:03 · 262 阅读 · 0 评论 -
greedysnake 贪吃蛇
大一上学期软导的贪吃蛇代码,当时实现了很久,努力自己实现了大部分, 另外参考了师兄给的代码,最终才完整实现,但是没有实现自动的部分#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define SNAKE_MAX_LENGTH 20#define SNAKE_HEAD 'H'#define SNA原创 2016-05-08 13:28:11 · 1286 阅读 · 0 评论 -
double linked list双向链表
[tags] C++双向链表的实现与单向链表相近节点结构体类声明总结双向链表的实现(与单向链表相近)1. 节点结构体struct DouListNode { int elem; DouListNode *prev, *next; DouListNode(int e = 0, DouListNode *p = 0, DouListNode *n = 0) { elem = e原创 2016-04-27 21:28:24 · 4019 阅读 · 0 评论 -
高精度乘法c++实现
高精度乘法c++实现注:高精度乘法是应聘中常见的笔试题,主要考察用字符串模拟乘法的过程,下面提供一个比较简单的版本实现。如果错误,请多指教。如:123 * 23(1)存储的时候从个位往前进行存储。(2)123的个位(第0位)乘以23得到49(result[0] = 9, result[1] = 4)(3)123的十位(第1位)乘以23得到460,(result[0 + 1] = (4 ...原创 2019-02-17 21:04:31 · 6423 阅读 · 2 评论