帅东's Blog

When I look back, I will not regret for wasted years, not because of mediocrity and shame

C++如何写adaptable仿函数

关于仿函数很多博客上都有,形式很简单,用途也很多。 一句话总结:重载了()运算符的类可以称之为仿函数functor 现在写一个“比较”class MyLess{ public: bool operator()(int a, int b){ return a < b...

2017-12-20 19:47:17

阅读数 172

评论数 0

STL中的hash_map使用

主要分两部分来使用hash_map 1.针对 key = int char 等内置类型 2.针对 key = 非内置类型部分源码全部来自于sgi-v2.03版 都知道要使用hashtable必须有hash函数,由于STL内核提供了如下:内置的HashFcn: struct hash<c...

2017-11-25 11:51:02

阅读数 443

评论数 0

C++11里shared_ptr源码剖析

很多人不知道引用计数放在哪,昨天为止我也不知道,O(∩_∩)O哈哈~A *a = new A; shared_ptr<A> sp(a);上面代码发生了什么呢? 进入shared_ptr的构造函数template<class _Ux> explicit shared...

2017-10-11 15:55:47

阅读数 511

评论数 0

C++Sort函数的潜规则

#include<iostream> #include<vector> #include<algorithm> using namespace std; bool comp(int a, int b) { if (a < b){ ...

2017-09-12 22:30:31

阅读数 204

评论数 0

深入剖析C++为啥有extern

大家都知道C++中有个extern关键字是用来识别C语言的,然后以C语言的形式去编译。 原因:C++里面出现了函数重载这东西,导致和C中编译函数,生成的符号不一样,所以引入了extern。 估计大家也都知道原因,但是你有尝试去看过那些符号么?—– now 带大家去 look look —–先创...

2017-05-30 23:18:26

阅读数 178

评论数 0

STL空间配置器之内存池技术

注释的STL代码,算是为将来复习做个小笔记吧#if 0 #include<new> #define __THROW_BAD_ALLOC throw std::bad_alloc() #elif !defined(__THROW_BAD_ALLOC) #include<iostre...

2017-05-07 17:33:38

阅读数 334

评论数 0

C++虚表撞上虚继承后的内存布局

先看一个有虚表的内存布局:class K { double a; virtual void fun(); }; class L : public K { int b; virtual void fun(); };//24 /* +--- ...

2017-04-24 14:12:53

阅读数 292

评论数 0

深入剖析C++中的三种new

new运算符 Operator new()函数 placement new 我们平时调用的new运算符底层调用的就是Operator new()函数(功能和malloc一模一样),如果是内置类型或者没有重载new运算符的自定义类型,那么将调用全局Operator new(),如果重载...

2017-04-23 14:52:21

阅读数 276

评论数 1

2017年完美世界一道笔试题

在不同的cpp文件中用同样类实例化某个模板函数那么是会产生多个函数的定义吗? 1.写两个.cpp文件和一个.h文件 test1.cpp#include "test.h" void func1() { func<int>(1); } int main() { ...

2017-04-07 17:39:28

阅读数 916

评论数 0

C++实现简单的内存池

没有考虑线程安全,只是简单的实现了内存池 功能:第一次先申请一大片内存,然后分成小块,每次分配给应用程序这小块内存,当内存不够了又继续向系统申请一大片内存 直接晒代码 MemPool.h#include <iostream> template<typename T&g...

2017-03-23 11:12:54

阅读数 332

评论数 0

C++中4种方式把字符串和数字连接起来

以前老用Java里面的String类,用过的人都知道好舒服,连接字符串和数字只需要用一个 + 号就可以了。在这里真的想把C++中string类+号功能加强一下。希望有能力的人可以做一下,不然总是感觉string类缺点啥呢(每次都和java比 O(∩_∩)O哈哈~) 不废话了,如题直接晒代码 ...

2017-03-19 21:54:39

阅读数 40465

评论数 8

B树的插入和删除

B-Tree 翻译过来为: B树,B-树 下面代码可以直接运行,我思路还是简单,就是调代码花了好久 供大家参考#include<iostream> #include <vld.h> #include <queue> using namespace std;...

2017-02-15 14:31:08

阅读数 345

评论数 0

根据类和返回值★产生临时量的几种情况

#include<iostream> using namespace std;typedef struct dong { int a[4]; }Dong; typedef struct dong2 { int b; }Dong2; typedef struct dong...

2016-11-27 13:30:15

阅读数 524

评论数 0

Huffman编码

#include <iostream> using namespace std; #define MAX 100000typedef struct { int parent; int lchild; int rchild; int weight;//权值...

2016-11-08 21:49:48

阅读数 205

评论数 0

C语言模拟多态

#include <stdio.h> #include <stdlib.h> //模拟一个类A typedef struct A { void *vptr;//虚函数指针 //下面内容可以删掉,写上的目的:看着像一个类 int a;//成员变量 ...

2016-11-08 13:50:15

阅读数 226

评论数 0

C++玩转虚函数表指针-在类外面调用类中私有函数

#include<iostream> using namespace std;//只要有虚函数,基类,派生类都会默认创建一个指向虚函数表的指针,表可能不一样 class A{ public: virtual void go1() { cout <&...

2016-11-04 23:26:33

阅读数 823

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭