- 博客(33)
- 收藏
- 关注
转载 贪吃蛇游戏(C++实现)
转载自https://blog.csdn.net/ckcz123/article/details/8204365#include<iostream>#include<cmath>#include<cstdlib>#include<cstdio>#include<ctime>#include<conio.h>#...
2018-07-23 14:49:37 1562
原创 队列的顺序存储和链式存储
队列是一种先进先出的线性表;它只允许在一端插入元素,在另外一端删除元素;允许插入元素的一端叫做队尾,允许删除元素的一端叫做队头。1.顺序存储//头文件.h#include"stdlib.h"#include"stdio.h"#include"string.h"#ifndef _MY_SEQLIST_H_ #define _MY_SEQLIST_H_typed...
2018-07-23 09:15:36 716 1
原创 栈的顺序存储和链式存储
栈是限定仅在表尾进行插入和删除操作的线性表。表尾端称为栈顶,表头端称为栈尾;栈又称为“先进后出”的线性表1.栈的顺序存储//头文件SeqList.h#include"stdlib.h"#include"stdio.h"#include"string.h"#ifndef _MY_SEQLIST_H_ #define _MY_SEQLIST_H_typedef void SeqL...
2018-07-11 09:32:47 851
原创 线性表的链式存储
//头文件#include"stdlib.h"#include"stdio.h"#include"string.h"#ifndef _MY_LINKLIST_H_ #define _MY_LINKLIST_H_typedef void LinkList;//typedef void LinkListNode;typedef struct _tag_LinkListNode{ s...
2018-06-30 09:05:25 365
原创 线性表的顺序存储
//头文件.h#include"stdlib.h"#include"stdio.h"#include"string.h"#ifndef _MY_SEQLIST_H_ #define _MY_SEQLIST_H_typedef void SeqList;typedef void SeqListNode;//创建并且返回一个空的线性表SeqList* Seqlist_Create(i...
2018-06-29 11:06:59 183
原创 STL综合案例
//案例1(set、map)//创建一个集合,保存文件中出现的单词;set//创建一个映射,保存单词及该单词出现的次数;map#include"iostream"using namespace std;#include"vector"#include"set"#include"map"#include"iterator"#include"functional"#inclu
2018-06-21 11:23:44 415
原创 STL常用算法(复制、交换、替换、填充、生成、删除、排序、集合操作)
//pioi#include"iostream"using namespace std;#include"vector"#include"string"#include"algorithm"#include"functional"#include"iterator"/*复制*///copy和copy_backwardvoid print(int &n){
2018-06-19 13:32:46 310
原创 STL常用算法(循环,查询,计数,比较)
//循环,查询,计数,比较序号功能函数名称说明 1循环for_each遍历容器元素,对每个元素执行相同的操作 2查询find在单迭代器序列中找出某个值第一次出现的位置 find_if在单迭代器序列中找出符合某谓词的第一个元素 find_first_of在双迭代器序列中找出子序列中某元素第一次出现的位置 adjacent_find在单迭代器序列中找出第一次相邻值相等元素出现的位置 find_end在...
2018-06-15 09:56:28 441
原创 函数适配器
函数适配器1)函数适配器 2)常用函数适配器标准库提供一组函数适配器,用来特殊化或者扩展一元和二元函数对象。常用适配器是:1绑定器(binder): binder通过把二元函数对象的一个实参绑定到一个特殊的值上,将其转换成一元函数对象。C++标准库提供两种预定义的binder适配器:bind1st和bind2nd,前者把值绑定到二元函数对象的第一个实参上,后者绑定在第二个实参上。2取反器(...
2018-06-13 13:49:28 768
原创 容器选用场景
顺序容器容器名称初始化赋值元素存取大小插入和删除扩展string默认 带参数 拷贝 运算符重载= /.assgin(){2种}[] /.at()size(),strlen(),empty()insert() erase() clear()拼接:+/append() 查找: find()/rfind() 替换:replace() 子串: substr() 比较: compare()vector默认 ...
2018-06-12 11:03:42 271
原创 函数对象
//函数对象:重载函数调用操作符的类, 其对象常称为函数对象(function object), 即它们是行为类似函数的对象。 一个类对象, 表现出一个函数的特征, 就是通过“对象名+(参数列表)”的方式使用一个类对象, 如果没有上下文, 完全可以把它看作一个函数对待。这是通过重载类的 operator()来实现的。“在标准库中, 函数对象被广泛地使用以获得弹性”, 标准库中的很多算法都可以使用函...
2018-06-12 10:47:25 743
原创 映射(map/multimap)基础
map/multimap 的简介 map 是标准的关联式容器, 一个 map 是一个键值对序列, 即(key,value)对。 它提供基于 key 的快速检索能力。 map 中 key 值是唯一的。 集合中的元素按一定的顺序排列。 元素插入过程是按排序规则插入, 所以不能指定插入位置。 map 的具体实现采用红黑树变体的平衡二叉树的数据结构。 在插入操作和删除操作上比 vector 快。 ...
2018-06-09 13:53:33 419
原创 集合(set和multiset)
set/multiset 的简介 set 是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入, 所以不能指定插入位置。 set 采用红黑树变体的数据结构实现, 红黑树属于平衡二叉树。 在插入操作和删除操作上比 vector 快。 set 不可以直接存取元素。(不可以使用 at.(pos)与[]操作符)。 mu...
2018-06-08 10:13:21 376
原创 优先队列的用法
优先队列的用法 priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数: priority_queue<Type, Container, Functional> 其中Type 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。 Container 必须是用数组...
2018-06-07 15:01:29 238
原创 堆栈与队列(stack和queue)
Stack 简介 stack 是堆栈容器, 是一种“先进后出” 的容器。 stack 是简单地装饰 deque 容器而成为另外的一种容器。 #include <stack> stack 对象的默认构造stack 采用模板类实现, stack 对象的默认构造形式: stack <T> s;stack <int> s; //一个存放 int 的 stack 容...
2018-06-06 15:10:29 6020
原创 Deque容器基础
// deque 是“double-ended queue”的缩写, 和 vector 一样都是 STL 的容器, deque 是双端数组, 而 vector 是单端的。 deque 在接口上和 vector 非常相似, 在许多操作的地方可以直接替换。 deque 可以随机存取元素(支持索引值直接存取, 用[]操作符或 at()方法, 这个等下会详讲)。 deque 头部...
2018-06-06 11:15:09 351
原创 String 语法
#include<iostream>using namespace std;#include"string"#include"algorithm"/*初始化*/int main01(){ /////////////////////////////初始化方法 string s1 = "aaaaaaaaaa"; //string(const char *s);...
2018-06-02 16:07:37 410
原创 模板数组类案例
//.h文件#pragma once#include<iostream>using namespace std;template<typename T>class MyVector{public: MyVector(int size); //MyVector b = a;//拷贝构造函数 MyVector(const MyVector &obj);...
2018-06-01 14:11:10 317
原创 类模板
#include<iostream>using namespace std; template <class numtype>//声明 class Compare {public: Compare(numtype a, numtype b); numtype max(); numtype min(); private: numtype x; n...
2018-05-26 11:00:17 593
原创 抽象类案例
头文件#pragma once#include "Shape.h"class Rectange : public Shape{public: Rectange(float a,float b); ~Rectange();public: virtual double area()const;private: float length; float width;};#pra...
2018-05-25 10:42:28 1569
原创 类的继承2
//Cadre.h#pragma onceclass Cadre{public: Cadre(char*,int,int,char*,char*,char*); ~Cadre(); void display(); void getpost();private: int age; int sex; char add[50]; char tel[20];public: ...
2018-05-22 15:22:11 196
原创 文件的打开和关闭
//1.cpp#include<fstream>#include<iostream>using namespace std;int main01(){ int a[10]; ofstream outfile("f1.dat",ios::out); if (!outfile) { cerr << "open error!"<<en...
2018-05-22 15:10:16 423
原创 运算符重载案例1
运算符重载案例1、头文件<Test.h>2、方法实现<Test.cpp>3、主函数Main()4、调试界面:
2018-05-16 14:51:12 222
原创 友元函数和友元类
在类中,有public和private,在实际调用时会有访问限制,友元函数可以用不属于这个类的非成员函数来访问一个类中的私有成员。1、用普通函数来作为友元函数:2、用另一个类的成员函数做友元函数:3、友元类: 类也可以声明为另一个类的友元类: class A {friend B;}即B是A的友元类...
2018-05-12 18:33:28 445
原创 引用
1、普通引用 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号),程序中通过变量来申请并命名内存空间 ,通过变量的名字可以使用存储空间 (1) 引用概念 (a)在C++中新增加了引用的概念 (b)引用可以看作一个已定义变量的别名 (c)引用的语法:Type& name = var; 2、引用做函数参数 普通引...
2018-05-07 13:21:34 207
原创 静态成员
1、静态数据成员 如果想在同类的多个对象之间实现数据共享,也不要用全局对象,可以用静态数据。静态数据是一种特殊的数据成员,用关键字static开头:如果希望个对象中的数据成员的值是一样的,就可以将它定义为静态数据成员,这样它就是所有对象共享的,所有的对象都可以引用它。引用时要加上成员运算符“.”。 注意:(1).静态数据成员不属于任何一个对象,在对象分配空间中不包含静态数...
2018-05-05 18:02:57 608
原创 用const实现对数据的保护
在类中,我们知道用private来保护数据,增加数据的安全性,但是有时候有些数据是共享的,例如形参和实参,变量和它的引用,数据和它的指针,这些都可以通过不同的方式来访问,可能在不经意间会改变本来不想改变的值,造成数据破坏。既要实现数据的共享,又不想数据可能因误操作而改变,我们可以采用将这些数据定义为常量,使之不可改变。1、常对象 在定义对象时加关键字“const”,将对象定...
2018-05-05 15:44:31 545
原创 对象指针
对象指针:对象空间的起始地址就是对象的指针。1、指向对象的指针: 2、指向对象成员的指针: (1).指向对象的数据成员; (2).指向对象的成员函数; ...
2018-05-05 13:51:40 382
原创 对象数组的初始化
对象数组:数组中每个元素为一个对象。在建立数组时,可以在定义数组时提供实参以实现初始化。1、如果构造函数只有一个参数,可以直接在等号后面的花括号内提供实参,如: Student stu【3】={10,20,30};2、如果构造函数有多个参数,在定义时在花括号中分别写出构造函数名并在括号内指定实参。如下:构造函数有3个参数,分别代表学号,年龄,成绩,在定义时可以: ...
2018-05-05 11:28:56 24464 4
原创 用构造函数来实现对象的初始化以及构造函数的重载
1、c++提供了构造函数来处理对象的初始化,他是一种特殊的成员函数,不需要用户来调用,而是在建立对象时自动执行。2、有时候我们希望不同的对象需要赋予不同的值,这是需要使用带参数的构造函数。函数首部的一般形式为 构造函数名(类型1 形参1,类型2 形参2,类型3 形参.......) 类名 对象名(实参1,实参2,........)3、构造函数可以...
2018-05-05 08:59:39 2848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人