好记性不如烂笔头

个人博客http://huqijun.org,发现更大的世界~

TinySTL设计与实现

最近个人博客(huqijun.org) 改版,  一些非创造性的文章迁移到CSDN 概述 学习和理解template 和STL 的最好方式就是自己用template 造一个STL(俗称造轮子),然后不断对比自己版本的STL与标准版本的STL(sgi STL 或者其它版本),不断重构...

2017-11-23 18:11:34

阅读数 308

评论数 0

原码,反码,补码---计算机中负数的表示

原码:将一个整数,转换成二进制,就是其原码。                如单字节的5的原码为:0000 0101;-5的原码为1000 0101。  反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。                如单字节的5的反码为:00...

2017-02-05 21:29:45

阅读数 92

评论数 0

C/C++位结构(位域)

位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便。位结构定义的一般形式为: struct位结构名{ 数据类型 变量名: 整型常数; 数据类型 变量名: 整型常数; } 位结构变量; 其中: 数据类型必须是int(unsigned或...

2016-12-26 23:12:12

阅读数 97

评论数 0

一致性哈希算法(consistent hashing)

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。      一致性...

2016-11-13 13:13:18

阅读数 91

评论数 0

字符串Hash:ELFhash 函数及其变体

实际项目中经常用到HASH 算法,这里介绍一种简单实现, 将任意字符串HASH映射到0到某一指定的范围内#include<iostream> #include<string>const int maxHashValue = 20000;int stringHash(std:...

2016-10-09 00:05:59

阅读数 223

评论数 0

C/C++工程实践

最近看公司产品代码时,发现了几种没见过的用法 本贴持续总结这些工程中的时间技巧 1.   struct test { int a ; float b; char c[0]; }; 作用: 柔性数组    C99的标准形式如下 struct sample {        int a...

2016-07-04 23:51:28

阅读数 530

评论数 0

main函数的第三个参数envp

本文首发于个人博客http://huqijun.com, 转载需或者作者授权!main函数两种常见形式在C/C++ 程序中, 操作系统通过main函数来调用程序,main函数是从程序的入口。常见的main 函数定义有如下两种方式: int main(void) int main(int ...

2016-06-17 00:15:53

阅读数 1821

评论数 0

GDB常用

本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的...

2016-06-15 21:55:48

阅读数 251

评论数 0

linux下C 和 C++ include搜索的路径

C语言中中可以通过#include 和#include "stidio.h",区别是: #include ,直接到系统指定目录去查找头文件。 #include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。 ...

2016-05-05 23:25:56

阅读数 856

评论数 0

C++ 那些反人类直觉的tricks

注释嵌套 std::cout << /* "*/" /* "/*" */;这个语句会输出 /* , 难道注释的查找是从右往左查找的? 即先找到 */ ,然后往前匹配最近的一个 /* ,认为这两者之间为注释内容? 据说C++ 一...

2016-04-26 22:55:03

阅读数 260

评论数 0

使用文件重定向

在重新看 C++ Primer 5th 时,注意到了一个以前忽视的细节(page 19): 当你测试程序时,反复从键盘输入数据是非常乏味的。 大多数操作系统支持文件重定向,这种机制允许我们将标准输入和标准输出与命令文件管理起来: $ addItem < infile &g...

2016-04-22 00:19:27

阅读数 323

评论数 0

C++中typename关键字的使用方法和注意事项

原文地址:http://blog.csdn.net/pizzq/article/details/1487004 解决了遇到的一个问题,转载备忘! 1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。 例如   template T foo(cons...

2016-03-30 20:05:14

阅读数 225

评论数 0

Iterator模式C++实现

学习C++,实现STL练手,发现对iterator 一点都不了解,只是会用,怎么实现也不是很清楚 网上有一篇文章讲的比较清楚,转载过来被忘,在此感谢原作者。 原文地址: http://www.cnblogs.com/weiqubo/archive/2011/01/09/1931469.htm...

2016-03-16 23:41:24

阅读数 414

评论数 0

C++ :TinySTL 之vector 设计,实现与中间的坑

std::vector 是一种封装了动态数组的顺序容器(std::vector is a sequence container that encapsulates dynamicsize arrays.)           初步设计: 1.    内存管理 方案一: 使用std::allocat...

2016-02-21 21:11:55

阅读数 1130

评论数 0

为什么C++编译器不能支持对模板的分离式编译

原文地址:http://blog.csdn.net/pongba/article/details/19130 文章写的很好,所以转载过来,主要用于备忘 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被...

2016-02-20 15:48:12

阅读数 153

评论数 0

C++练习项目---TinySTL,简易的STL库

概述: 为了练习C++,自己仿照标准的STL容器库实现一个简易的STL 目标: 自己实现一个简易的容器库--TinySTL , 实现标准库的Containers Library,Algorithms Library,Iterator Library, String Library 库, 库的接...

2016-02-18 22:23:44

阅读数 1671

评论数 0

C++ 之异常处理

基本理念:问题的检测和问题的解决分离,程序的问题检测部分可以不用了解如何处理问题 异常处理是一同通信机制,程序的不同部分就出现了什么错误进行通信; 异常是通过抛出(throw)对象而引发(raise)的,该对象的类型决定了应该激活哪个处理代码。被选中的处理代码是调用链中与该对象...

2016-02-01 23:16:55

阅读数 311

评论数 3

C++ 类模板

1. 在类模板的作用域内部,可以用它的非限定名字引用该类 eg. template  class test { test();// } 使用类模板的名字时,必须制定模板形参,这一规格有一例外:在类模板本身的作用域内部,可以使用类模板的非限定名。 正常使用类模板,需要指定其限定...

2016-01-27 19:48:29

阅读数 241

评论数 0

C++模板编译模型:包含编译与分离编译

一般而言,调用函数时,编译器只需要看到函数的声明即可。 所以可以把函数的声明放在.h 文件中,实现在.cpp 的实现文件中;  使用函数的地方#include 函数的h 文件即可。故一般的风格是件类定义和函数声明放在头文件中,而普通函数和类成员函数的定义放在源文件中。 对于模板则不同,要进行实...

2016-01-21 23:34:27

阅读数 396

评论数 0

C++ 中函数模板的实参推断与显式实参

先看例子template int compare(const T& v1,const T& v2) { if(v1 < v2) return 1; else if ( v1 == v2 ) return 0; else return -1; } ...

2016-01-21 22:43:40

阅读数 280

评论数 0

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