语言
文章平均质量分 76
lijun538
根扎的再深一点,就能探到阳光
展开
-
c-free中hashtable问题
最近在学习c++ STL方面的知识,复习《STL源码剖析》的时候,想简单的练习一下里面的使用实例,使用的编译环境是比较轻巧的c-free 5.0。前面序列容器部分没有什么问题,在测试hashtable的时候卡主了。hashtable在客户端程序实现时在头文件中。 #include 首先,编译器会提示:No such file........。找不到头文件。打开c-f原创 2015-08-29 16:41:26 · 906 阅读 · 0 评论 -
memmove和memcpy
在阅读>的过程中,看到关于内存处理工具的问题,其中的uninitialized_copy使用了memmove函数,但是并没有详细解释,这里记录一下。memmove和memcpy都是用于内存拷贝的函数,并不是像函数名字一样,一个是复制,一个是移动。它们声明在头文件中。memcpy是把源地址(const void *型)指向的对象中的n个字符,拷贝到目的地址(void *)所指向的对象原创 2015-10-17 11:01:42 · 883 阅读 · 0 评论 -
shell中使用vi退出的注意事项
在使用shell脚本的时候,有时候会在程序里直接调用vi处理,简单的例子如下:1234567#! /bin/bashvi abc.txt i #进入insert模式Here is a document! #输入文原创 2015-10-17 13:26:48 · 2101 阅读 · 0 评论 -
<stl>将bytes上调至8的倍数
在源码剖析>>的空间配置一章的二级配置器中,有如下一段源代码,功能是将bytes上调至8的倍数。enum{_ALIGN=8}; //小型区块的上调边界private:static size_t ROUND_UP(size_t bytes){return (((bytes)+_ALIGN-1)&~(_ALIGN-1));这里的源码乍一看很难懂,但是十分高效,现在具体看一下原创 2015-10-17 11:54:31 · 1199 阅读 · 0 评论 -
c++primer文本查询系统
以下是c++pirmer的文本查询系统再探的源码,基本部分没有做什么修改。 这里提几个注意事项: 1.使用c++11特性的时候,在编译环境里增加指令-std=c++11.代码中出现的shared_ptr、make_ptr原本是boost库中的内容,已经被吸收到了c++标准库中,引用头文件memory即可。 2.如果在做15.34的练习的时候,编译会出现Link error undefined原创 2015-11-14 16:50:09 · 976 阅读 · 0 评论 -
c++内存问题整理与智能指针使用
公司里小组组织c++知识的分享会,正好我手上碰到过几个purify的内存泄露问题,就借这里总结一下c++的内存问题。 借鉴陈硕总结的分类,c++大致的内存问题有以下几个方面: 1.缓冲区溢出 在使用自己编写的缓冲区或者使用不安全的函数时,会遇到类似数组越界的缓冲区溢出问题,Linux内核的解决办法是栈随机化,金丝雀的检测,具体的攻击手段和例子,可以参考我另一篇的buffer lab原创 2016-03-14 14:49:45 · 2901 阅读 · 0 评论 -
C++委托实现(函数指针,function+bind,委托模式)
这一段在公司的某个框架代码中看到了函数指针的使用。风格比较偏纯C,其实C++有更加合适的解决方案,在这里总结一下。 首先从函数指针说起。 一、函数指针 从定义上讲,函数指针指向的是函数而非对象,函数指针指向某种特定类型。其类型由函数的返回类型和形参类型决定。 声明方式如下:bool (*pf)(const string &,const string &); 注意pf原创 2016-04-28 20:54:27 · 9376 阅读 · 0 评论 -
后端c++知识点总结
这一篇是C++的一些面试点的总结。1、一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键) 如果对C++String不熟悉的话,先看http://www.cplusplus.com/reference/去了解一下String类常用的方法,如果想了解C语言的实现,去看一下《C语言接口与实现》(十五章 低级字符串)。 Scott Meyers在《ef原创 2016-09-30 11:11:50 · 4425 阅读 · 2 评论