C++
mosqquito_gao
这个作者很懒,什么都没留下…
展开
-
const
const:它指定一个语义约束,编译器会强制实施这个约束。它告诉编译器和程序员它所指定的值是应该保持不变的。 int a = 5; int b = 6; const int * p = &a;//*p是const的 int * const q = &a;//指针q是const的 q = &b;//错误 *p = b;//错误 *q = b;原创 2015-11-02 21:38:09 · 258 阅读 · 0 评论 -
stl_set
//不允许相同值得set//#include<rb_tree.h>//#include<stl_function.h>template<class key , class Compare = less<key>>//默认状态下按递增排序class set{public: typedef key key_type; typedef key value_type; ty原创 2016-03-12 14:25:15 · 211 阅读 · 0 评论 -
stack与queue
1.stack#include<deque.h> template <class T,class Sequence = deque<T>>class stack{public: typedef typename Sequence::value_type value_type; typedef typename Sequence::size_type size_type;原创 2016-03-10 18:10:35 · 192 阅读 · 0 评论 -
rb_tree
#include<new>#include<stdlib.h>#include<cstddef>#include<utility> template <class T1, class T2>inline void construct(T1* p, const T2& value){ new (p)T1(value);}template <class T>inline void原创 2016-03-10 17:56:10 · 644 阅读 · 0 评论 -
STL_deque
#include<new>#include<stdlib.h>#include<cstddef>const size_t BufSiz = 512;size_t max(size_t a, size_t b){ if (a > b) return a; else return b;}template<class B1, class B2>原创 2016-03-03 18:40:27 · 232 阅读 · 0 评论 -
vector 实现
vector的实现。 内存申请和释放用了simple_alloc。#include<new>#include<stdlib.h>using namespace std;size_t max(size_t a, size_t b){ if (a > b) return a; else return b;}template <class F ,原创 2016-02-29 17:23:34 · 298 阅读 · 0 评论 -
STL-list实现
#include<stdlib.h>#include<new>template <class T1, class T2>inline void construct(T1* p, const T2& value){ new (p)T1(value);}template <class T>inline void destroy(T * pointer){ pointer->原创 2016-03-01 20:05:14 · 222 阅读 · 0 评论 -
非常简单的汇编翻译器
上周一直在做一个学校的比赛,题目就是写一个翻译器把C代码翻译为汇编代码。 我设计思路是把C代码读入后,按“;”分割为语句然后识别关键词来分别变量和变量的赋值。最后发现我整个都在做对字符串的处理。也发现了自己很多原来忽略的地方。 函数关系图 思路图 因为学校要求只提供一个源文件所以我所有代码都写一起了比较丑陋。而且其中越写脑洞越大很多代码都是无用的- -。真正完成题目估计300行即可。//原创 2015-12-01 20:46:48 · 3593 阅读 · 0 评论 -
leetcode之数组指定位置间的数之和
题目: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example: Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange原创 2015-11-15 22:17:14 · 270 阅读 · 0 评论 -
vector源码学习1(未完)
vector:一个存有多个相同对象的集合。 vector和C中的数组的区别在于,vector都是动态的,他的大小可以增加。 vector就是一个类,要实现一个类,就先看看它需要具有什么功能。 1.定义和初始化(vector<> a()) 2.添加元素(push_back) 3.其他:empty(),size(),a[n],a1 = a2,//vector 的源代码摘录 template <原创 2015-10-15 19:23:46 · 246 阅读 · 0 评论 -
简单实现vector
#include<iostream>using namespace std;class my_vector{ private://三个指针分别指向第一元素,最后一个元素和空间的最后 int *start; int *end; int *end_of_storage; public: my_vector():star原创 2015-10-14 21:23:28 · 259 阅读 · 0 评论 -
SGI STL中的construct
SGL STL 中虽然有标准的allocate但是实际中使用的确是alloc 它们的主要区别就是alloc 不和allocate一样只是对new和delete进行封装。 new算式其实含有两段操作,1.配置内存,2构造队形。delete:1.析构对象,2.释放内存 在alloc就把中就把这两段操作分开为stl_construct.h(构造对象)和stl_alloc.h(分配内存) 下面就是s原创 2015-10-13 20:40:27 · 375 阅读 · 0 评论 -
SGI的标准的空间适配器 allocator
// SGI STL 配置器的实现#include <new>#include <cstddef>#include <cstdlib>#include <limits>#include <iostream>//#include <algobase>size_t max(size_t a, size_t b)//由于没找到algobase 头文件我自己完成了这个max { if(原创 2015-10-13 19:49:47 · 373 阅读 · 0 评论 -
STL之简单空间适配器实现
/* 简单的空间适配器实现 */ #include<new>#include<cstddef> //ptrdiff_t 保存两指针相减为long int ,size_t 记录大小的数据类型 #include<cstdlib> // exit()#include<climits> //UINT_MAX#include<iostream> // cerr 输出标准错误ostream对象n原创 2015-10-11 22:56:56 · 241 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-10-11 22:55:17 · 221 阅读 · 0 评论 -
ptrdiff_t学习
在学习STL源码时遇到了ptrdiff_t先看下我自己搞得测试ptrdiff_t的代码#include<iostream>#include<cstddef>#include<vector>using namespace std;int main(){ string s = "hello"; string::iterator sp = s.begin(); strin原创 2015-10-12 23:13:13 · 594 阅读 · 0 评论 -
stl部分容器学习及实现
//没有去写独立的空间配置器,只是写了一个简单的simple_alloc用来配合各个容器对内存管理的需求。 一 序列式容器。 1.vector. a.概念:拥有动态空间的数组 b.特点:和array唯一的区别就是vector随着元素的加入可以自动的扩展空间。 代码:http://blog.csdn.net/mosqquito_gao/article/details/原创 2016-03-12 15:31:18 · 316 阅读 · 0 评论