c++
qq_30272539
这个作者很懒,什么都没留下…
展开
-
7.1、函数返回值的引用。
#include<iostream>using namespace std;/** * @brief p * @return * 函数返回值为引用 */int p(){ int a=10; return a;}//1、因为当函数返回的是一个引用,相当于返回了这个函数的地址。 它的底层实现是 int * const a; 相当于 int & a...原创 2018-08-03 16:56:40 · 130 阅读 · 0 评论 -
2、c++相对于c 的增强。
#include<iostream>using namespace std;/** * @brief main * @return * 1、实用性增强 * 2、c语言的定义必须在作用于开始的地方定义。 * 3、c++更加强调语句的实用性。所有的变量可以在使用的时候再定义。 */int main11(){ int a=0; cout<<...原创 2018-08-02 21:32:52 · 307 阅读 · 0 评论 -
3、const 基本用法
#include<iostream>using namespace std;/** * @brief main * @return * 1、常量指针:表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。 * const int * c=&m;或者 int const * c=&m; * * 2、指针常量:...原创 2018-08-03 09:07:38 · 237 阅读 · 0 评论 -
4、const 和#define 相同之处和不同之处
#include<iostream>using namespace std;/** * @brief main * @return * const 修饰的时候是在编译的时候分配内存。 */int mainb(){ int a=200; const int b=100; int c=300; cout<<&a&l...原创 2018-08-03 10:37:28 · 270 阅读 · 0 评论 -
5、简单引用使用
#include<iostream>using namespace std;/** 1、变量的本质实质是一段连续的内存空间的别名,相当于一个门牌号。 2、程序中通过变量来申请和命名内存空间。 3、通过变量的名字可以使用存储空间。 4、对一段联系的内存空间只能够取一个别名吗?有 5、引用相当于取一个别名; 6、引用是c++的语法范畴。 7、普通引用是必须...原创 2018-08-03 14:03:24 · 207 阅读 · 0 评论 -
6.2、引用类型的本质
#include<iostream>using namespace std;//1.单独的引用,必须初始化,说明很像一个常量。int maine(){ int a=10; int &b=a;//1、引用变量也相当于一个门牌号。一个内存空间有多个门牌号 cout<<&a<<endl; //a 和 b 是同一块内存空间...原创 2018-08-03 15:21:51 · 197 阅读 · 0 评论 -
6、const 用法
void testConst(){ const char * p = "abcd"; //表示不能够修改指针指向的数据 const data char * const q = "bcda"; //表示的是不能够 修改这个指针指向其他对象。 const point const string a("marray"); // const ...原创 2018-11-06 22:05:53 · 193 阅读 · 0 评论 -
1、一个万能的 hash 函数
template<class T>inline void hash_combine(std::size_t & seed, const T & val){ seed ^= hash<T>()(val)+0x9e3779b9 + (seed << 6) + (seed >> 2);}template<class T...原创 2018-11-05 09:23:12 · 2963 阅读 · 0 评论 -
2、hash 表解析
1、什么是 hashtable?2、hashtable 主要解决的问题?1、当我们的元素,是32位,而不是16位,我们需要准备的空间是4GB.空间会不够用。2、如果元素的类型是字符串而非整数,我们咋样获取一个元素的索引。3、我们咋样解决hash冲突问题。 3、hash表设计的思想理念是什么? ...原创 2018-11-05 09:50:10 · 153 阅读 · 0 评论 -
3、hash 函数的设计
1、hash 函数对整数和大整数的处理 对于整数的hash函数,我们设计hash 函数,我们可以用取模的方式来获得。2、对于浮点型 设计hash 函数处理3、对于字符串hash 函数的处理 4、对于复合类型的处理 5、我们设计哈希函数的原则? ...原创 2018-11-05 10:27:59 · 5604 阅读 · 0 评论 -
4、hash函数的代码实现
#ifndef HASHTABLE#define HASHTABLE#include<vector>#include<map>using namespace std;template<class K,class V>class HashTable{private: const static int upperTol = 10; co...原创 2018-11-05 19:48:56 · 702 阅读 · 0 评论 -
1、namespace 的用法
#include<iostream>using namespace std;/*总结 :1、在使用<iostream> 该头文件没有引入全局的命名空间。必须使用 namespace std;这样才可以正确使用 cin 和 cout;如果不使用 using namespace std;就需要 std::cout 和 std::cin;2、c++标准为了和c 区...原创 2018-08-02 17:25:06 · 829 阅读 · 0 评论 -
16、构造函数和析构函数使用
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Test{private : int x; char *p;public: Test() { x = 10; p = (char *)malloc(100); //初始化操作 strcpy(p, ...原创 2018-08-05 16:53:07 · 127 阅读 · 0 评论 -
15、成员函数的分离
1、头文件的声明 #pragma once //表示的是只包含一次 //#ifndef A_H意思是"if not define a.h" 如果不存在a.h//接着的语句应该#define A_H 就引入a.h//最后一句应该写#endif 否则不需要引入//#ifndef _TEACHER2_H_ //#define _TEACHER2_H_cl...原创 2018-08-04 22:46:56 · 124 阅读 · 0 评论 -
7.2、函数返回值为引用左值和右值问题
#include<iostream>using namespace std;/*** @brief p* @return* 函数返回值为引用:1、当函数的 返回值的是一个局部变量引用的时候, 不可以成为其他的引用的初始值; 不能够作为左值使用。2、如果返回 的是 静态变量和全局变量引用时。 可以成为其他的引用的初始值; 能够作为左值使用。*/...原创 2018-08-03 16:59:33 · 1834 阅读 · 1 评论 -
8、指针引用和二级指针
#include<iostream>using namespace std;/*1、用二级指针来实现,2、指针引用*/struct teacher{ int age; char name[30];};int getTeacher(teacher ** p){ //二级指针 teacher * temp = NULL; i...原创 2018-08-04 12:33:11 · 178 阅读 · 0 评论 -
9.2、常引用
#include<iostream>using namespace std;struct teacher{ int age; char name[30];};/*常引用做函数参数*/void printTeacher(const teacher &a ){ // a.age = 30; 编译不通过 ,因为不能够被修改、 //常引用,让...原创 2018-08-04 16:33:05 · 905 阅读 · 0 评论 -
9.1、c++新增的bool 值。
#include<iostream>using namespace std;/** * @brief main * @return * * 1、bool 类型,在内存中只占用一个字节,只在c++中存在。 * 2、 当取得的值为 0 时,bool 值为 false 取得0; * 3、当取得的值为1 时,bool 值为 true 取得的值为1; */int ma...原创 2018-08-04 15:50:50 · 296 阅读 · 0 评论 -
6.1、结构体的引用
#include<iostream>using namespace std;struct teacher{ int age; char name[20];};void print1(techer * tp){ //传递的是一个指针 可以修改 cout<<tp->age;}void print2(techer tp){ //相当...原创 2018-08-03 14:04:29 · 183 阅读 · 0 评论 -
10、内联函数和宏替换
#include<iostream>using namespace std;//这个是宏定义 # define MAX(a,b) ((a)>(b)?(a):(b))/*1、内联函数不能够先声明后实现,否则是内联失效。inline void print(); 就是无效的*/inline void print(){ int a = 10; ...原创 2018-08-04 17:18:11 · 151 阅读 · 0 评论 -
11、函数的参数扩展
#include<iostream>using namespace std;void print(int a,int b,int){ //3、函数占位参数,函数调用的时候必须写足。 cout << a << " " << b << endl;}void p(int x = 3){ //1、如果有多个参数,有默认...原创 2018-08-04 19:58:49 · 173 阅读 · 0 评论 -
12、函数重载用法
#include<iostream>using namespace std;/*函数重载: 1、函数名相同2、函数参数(类型,个数,顺序)不同。3、返回值不是判断重载的条件4、如果函数重载和默认参数值调用出现二义性,c++编译器编译失败。*/void play(int a, int b){ cout << a << b <<...原创 2018-08-04 20:13:30 · 405 阅读 · 0 评论 -
13、函数指针和函数重载
#include<iostream>using namespace std;//1、函数指针的基本用法 //1、声明一个函数类型 typedef void (myfunc)(int a, int b);//myfunc *p = NULL; //定义一个函数指针,指向这个函数的入口地址//2、声明一个函数指针类型 typedef void (* my...原创 2018-08-04 20:52:42 · 161 阅读 · 0 评论 -
14、类的封装
#include<iostream>using namespace std;/*1、类的封装:(1)、类封装了成员变量和成员函数。(2)、对属性和成员函数的访问控制。(3)、类的内部和类的外部。(4)、类的访问关键字。 public protected private */class Circle{private: double r; //成员函数 dou...原创 2018-08-04 21:51:58 · 124 阅读 · 0 评论 -
5、红黑树的学习
1、红黑树满足的性质。1、所有节点非红即黑;2、根节点为黑;3、最后的NULL节点为黑;4、红节点的孩子一定为黑;5、黑平衡:任意一个节点到最后的NULL节点的任意路径黑色节点的个数相同。2、2-3 树添加元素的过程2-3树是一颗满足二分搜索树的性质。我们要掌握红黑树,我们必须先了解红黑树。节点可以存放一个元素和两个元素。2-3树咋样维护平衡的?1、添加节点,不能够...原创 2018-11-06 16:37:33 · 200 阅读 · 0 评论