
C/C++
文章平均质量分 68
deerleaper
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二字符串匹配字串最大长度
int MaxSubStrMatched(char *p, char *q){/******************************************************************************三层循环,第一层:p中从第0个字符开始第二层:q中从第0个字符开始第三层:p中第i个字符在q中某个j的位置找到后,用pos记录位置,进入此循转载 2013-12-31 17:40:08 · 866 阅读 · 0 评论 -
删除数组中指定的元素
int remove_key(int* arr, int n, int v) { int count = 0; //the number of elements equal to v which is to be deleted for(int i = 0; i < n-count; ++i){ int x = arr[i]; if(x == v){ int j原创 2014-08-01 09:28:22 · 1230 阅读 · 0 评论 -
boost完全开发指南第2章-处理时间5 (date_time库简单运用)
1、制作月历#pragma once#include #include using namespace std;using namespace boost::gregorian;void make_monthy_calender(){ date today_date = day_clock::local_day(); //the date of today date day原创 2014-01-22 23:33:35 · 572 阅读 · 0 评论 -
拷贝string至输出流
#include #include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ vector coll; copy(istream_iterator(cin), istream_iterator(), back_inserter(coll)); sort(coll.beg原创 2014-01-08 22:52:36 · 461 阅读 · 0 评论 -
《C++标准程序库》第二章-C++及其标准程序库简介
1、缺省的模板参数,template class可以有缺省参数,如template >class widget;则 widget x 相当于 widget >。2、关键字typename被用来作为型别之前的标志符号,注意区别一下二种声明:(1)templateclass MyClass{typename T::SubType *ptr; // 表示T的子类型的一个原创 2014-03-15 06:55:52 · 461 阅读 · 0 评论 -
《C++Templates》第二章-初探函数模板
1、编写模板推荐使用typename关键字,const xiushif原创 2014-04-07 20:23:41 · 505 阅读 · 0 评论 -
boost完全开发指南第2章-处理时间4 (日期区间date_period)
日期区间#include #include using namespace std;using namespace boost::gregorian;void test_date_period(){ date_period dp(date(2014,1,1), days(20)); //days cout<<"days: "<<dp.days原创 2014-01-04 20:10:57 · 850 阅读 · 0 评论 -
boost完全开发指南第2章-处理时间2(时间类timer)
0、timer(v1)库概述Boost1.48以后的timer库由二个组件构成:早期timer(v1)和新的cpu_timer(v2), 前者使用标准C/C++接口,后者基于chrono库使用操作系统的api,计时精度更高。 早期timer(v1)由于精度不高已被废弃,其中包括:计时器类timer、progress_timer、进度指示类progress_display。 1、原创 2013-12-14 20:07:44 · 416 阅读 · 0 评论 -
boost完全开发指南第2章-处理时间3(日期date)
5、date(1)创建日期测试代码:#include #include using namespaceboost::gregorian; void create_date_obj_test(){ date d1; date d2(2010,1,1); date d3(2013,Dec, 3); date d4(原创 2014-01-04 18:40:59 · 524 阅读 · 0 评论 -
EffectiveSTL笔记三-关联容器
1、通用算法std::find()函数是基于相等原则比较二个元素的,而关联ron原创 2014-08-20 10:00:16 · 412 阅读 · 0 评论 -
C++ 多线程编程总结
C++ 多线程编程总结 在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:l 并发l 异步l 缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。1任务队列1.1 以生产者-消费者模型设计任务队列 生产者-消费者模型是人们非常熟悉的模型,比如在某个服务转载 2014-08-07 12:47:45 · 424 阅读 · 0 评论 -
值得推荐的C/C++框架和库
【本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm】留作存档下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的转载 2015-08-19 16:53:05 · 510 阅读 · 0 评论 -
《汇编语言》第一章-基础知识
1、汇编语言的主体是汇编指令,汇编指令是jiqi原创 2014-04-07 04:46:04 · 689 阅读 · 0 评论 -
推荐-高质量C++/C编程指南(林锐)
版本/状态作者参与者起止日期备注V 0.9草稿文件林锐 2001-7-1至2001-7-18林锐起草V 1.0正式文件林锐 2001-7-18至2001-7-24朱洪海审查V 0.9,转载 2014-11-27 11:57:16 · 7219 阅读 · 0 评论 -
EffectiveSTL笔记二-vector和string
1、尽量使用vector和string代替动态分配的数组。2、为了避免重新原创 2014-08-14 09:31:00 · 506 阅读 · 0 评论 -
Effective STL笔记一-容器
1、C++提供了几种不同的容器供选择:(1)标准stl序列容器:vector、list、deque和string。(2)标准stl关联容器:set、multiset、map和multimap。(3)非标准stl序列容器slist和rope,slist是一个单向链表,rope本质上是一个“重型”string。(4)非标准的关联容器(基于hash表的、标准关联容器的变体):hash_s原创 2014-08-04 11:32:16 · 535 阅读 · 0 评论 -
遍历打印容器元素的函数模板
#ifndef __PRINTUTIL_HPP__#define __PRINTUTIL_HPP__#include templateinline void PRINT_ELEMENTS(const T& col, const char* optctr=""){ typename T::const_iterator pos; std::cout<< optctr ; for原创 2014-09-10 10:05:03 · 871 阅读 · 0 评论 -
类型占用字节空间
size_t size = 0; class empty_class{ }; size_t size = sizeof(empty_class);//1 class Widget{ virtual void test() = 0; }; size= sizeof(Widget); //4 struct st_widget { }; size = sizeof(st_w原创 2014-08-12 16:39:46 · 439 阅读 · 0 评论 -
重载自增和自减操作符
对于“++” 和“--”这两个一元运算符,存在前置和后置的问题,在定义时必须有所区分。(1) 用成员函数的形式来进行重载如果++为前增量运算符时,重载函数的一般格式为: ClassName :: operator ++ ( ){ //…}如果++为后增量运算符时,重载函数的一般格式为: ClassName :: operator ++ ( int ){ //…}(2)转载 2014-08-07 22:20:04 · 694 阅读 · 0 评论 -
仿函数1-当排序规则
#include #include #include using namespace std;class Person{public: Person(const std::string& first_name, const std::string& last_name) : first_name_(first_name), last_name_(last_name) {}原创 2014-06-02 19:51:42 · 851 阅读 · 0 评论 -
boost完全开发指南第12章-并发编程 1 (采用boost-asio库封装的tcp_server)
1、intdef.hpp #ifndef __INTDEF_HPP__#define __INTDEF_HPP__#include using boost::int8_t;using boost::uint8_t;using boost::int16_t;using boost::uint16_t;using boost::int32_t;using boost::u转载 2014-01-08 06:12:17 · 1255 阅读 · 0 评论 -
c++编程调试秘笈笔记一
1、类名开头字母大写,其他单词大小写混合,函数名大写,变量名小写用“_”隔开,成员变量末尾加"_"。2、禁止使用类的隐式转换,改为用关键字explicit声明一个接受1个参数的构造函数,并且避免使用operator Class()转换操作符;用不同的类表示不同的数据类型;不要使用enum{MON,TUE,...} ;枚举创建整形常量,而是用它们创建新类型,如typedef enum{MON,原创 2014-01-21 09:07:58 · 810 阅读 · 0 评论 -
effective c++ note1
《Effectvie C++》读书笔记一0、导读1、 在真实项目的代码中,如果使用标准程序库元素,需要加上前缀std::。2、 本书中,函数名和临时变量名都采用首个单词为小写,单词间大小写混合的方式。3、 default构造函数包含二类:(1)不带实参;(2)每个参数都有缺省值。4、 在构造函数前加上“explicit”的作用是:禁止编译器执行非预期的隐式类型转换。鼓励原创 2013-12-21 14:26:38 · 554 阅读 · 0 评论 -
effective c++ note3
3-资源管理1、shared_ptr属于“引用计数型智慧指针”(RCSP, reference-counting-smart-pointer)。所谓RCSP也是智能指针,持续追踪共多少个对象指向某个资源,并且在无人指向它时自动删除该资源。RCSP提供的行为类似于垃圾回收,但是RCSP无法打破环装引用,二个其实已经没有被使用的对象彼此互指,仍然处于“被使用”的状态。2、定义一个函数为单个对象原创 2014-01-10 08:56:16 · 519 阅读 · 0 评论 -
C++各大有名库的介绍
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。标准库标准库中提供转载 2014-03-13 06:41:32 · 407 阅读 · 0 评论 -
简单的写日志工具类LogUtil
1、LogUtil.h#ifndef __LOG_UTIL_H_#define __LOG_UTIL_H_#include #include #include #include #include #include #include using namespace std;#define PATH_LOG_FILE ".\\LogFile.txt"class原创 2014-01-08 23:23:00 · 1645 阅读 · 0 评论 -
auto_ptr常见使用方法
// auto_ptrs.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;templateostream& operator& ap){ if (ap.get() == NULL) {原创 2014-01-08 22:49:29 · 599 阅读 · 0 评论 -
关于模板类中友元函数的声明与定义
#include using namespace std;templateclass Widget{ friend void AccessWidget(const Widget& w);public: explicit Widget(const T& a):a_(a) {}private: T a_;};templateinline void AccessWidget原创 2014-01-08 07:14:41 · 2415 阅读 · 0 评论 -
memset()的效率以及源码分析
void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset当作万能的初始化工具,例如:int arr[n];memset(arr,1,n*sizeof(int));这样得到的a转载 2013-12-19 21:44:57 · 491 阅读 · 0 评论 -
Effectvie C++ note2
2.构造/析构/赋值运算1、只有当类的默认构造函数,析构函数,copy构造函数和assignment赋值操作符函数被需要(被调用时),它们才会被编译器创建出来。如果用户声明了一个构造函数,那么编译器不再创建default构造函数。2、编译器产生的析构函数是non-virtual类型的。3、如果打算在一个“内含reference成员”的class内支持赋值操作,必须自己定义一个copy原创 2013-12-22 15:48:01 · 710 阅读 · 0 评论 -
《C++编程思想II》第一章-异常处理
第一章 异常处理1.1传统的错误处理1、 使用异常处理:(1) 错误处理代码的编写不再冗余乏味,与“正常代码”分离;(2) 错误不能被忽略。2、 在c语言中,有三种方法用来处理错误或异常:(1) 使用标准库中的errno和perror();(2) 使用罕见的信号处理系统函数signal()和raise();(3)原创 2014-03-13 22:47:21 · 588 阅读 · 0 评论 -
《C++标准程序库》读书笔记二
《C++标准程序库》读书笔记二5.Standard Template Library1、STL组件主要包括三部分:容器、迭代器与算法。2、容器分为二类:(1)序列式容器,如vector, deque, list。元素的次序取决于插入次序。(2)关联式容器,由二叉树实作而成。如set/multiset, map/multimap。元素的次序取决于元素值。3、vector:在原创 2013-12-22 22:58:21 · 616 阅读 · 0 评论 -
stl算法-search
#ifndef ALGOSTUFF_HPP#define ALGOSTUFF_HPP#include #include #include #include #include #include #include #include #include #include using namespace std;templatevoid PRINT_ELEMENTS(con原创 2014-07-23 06:12:20 · 444 阅读 · 0 评论 -
《C++标准程序库》读书笔记一
《C++标准程序库》读书笔记一3一般概念1、C++标准程序库的异常总是派生自logic_error,提供了以下几种逻辑错误类别:(1)invalid_argument表示无效参数,例如将bitset(aarry of bit)以char而非‘0’或者‘1’进行初始化;(2)length_error指出某个行为可能“超越了最大障碍”,例如对着某个字符串附加太多字符;原创 2014-06-02 19:53:57 · 572 阅读 · 0 评论 -
boost完全开发指南第2章-处理时间 6 (time_duration时间长度的使用)
1、使用time_duration类需要声明#includeusing namespace boost::posix_time;一般都是精确到微秒级,但是 ,如果在以上声明前定义宏BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG,可以精确到纳秒级。2、time_duration的子类有:hours、minutes、seconds、millisec/millis原创 2014-01-23 07:52:34 · 3934 阅读 · 0 评论 -
《Boost程序库完全开发指南》第四章-实用工具
1、如果需要继承一个不可复制的zi原创 2014-04-09 21:36:52 · 691 阅读 · 0 评论 -
《Boost标准库完全开发指南》第三章-内存管理
1、使用boost智能指针只需要引用头文件#include。2、与auto_ptr不同,scoped_ptr只在本作用域使用,不能转让,auto_ptr在c++11已被声明废弃,改用unique_ptr。3、scoped_ptr不支持比较,reset函数不提倡使用, scoped_ptr不允许拷贝和赋值,除了支持*和->,没有其他操作符,不自增或自减,不能作为容器的元素存储。4、根据c原创 2014-04-04 05:28:14 · 528 阅读 · 0 评论 -
用C++设计一个不能被继承的类
1、声明和定义的区别在于:声明不分配地址和存储空间,定义转载 2014-04-27 17:48:39 · 307 阅读 · 0 评论 -
《C++Primer4》附录-标准库io库的使用
1、输出为bool类型格式为true和false,需要使用 boolalpha和noboolalpha,2、原创 2014-04-07 15:13:04 · 678 阅读 · 0 评论 -
setjmp用法
#pragma once#include #include using namespace std;class rain_bow{public: rain_bow() { cout << " rain_bow()" << endl;} ~rain_bow() { cout <<"~rain_bow()" << endl;}};jmp_buf kansas;int val原创 2015-12-29 08:25:02 · 670 阅读 · 1 评论