
C/C++学习
文章平均质量分 80
firectrl
这个作者很懒,什么都没留下…
展开
-
用标准模板库STL实现文件比较
用标准模板库STL实现文件比较作者: winter 简介本文讨论如何使用标准模板库(STL),类模板和函数模板,以及其它编程技术来解决实际问题。本文涉及到STL包含的集合和向量,函数模板,类模板,常量检验,出错处理和使用STL的文件I/O。要阅读本文,你要熟悉C++,熟悉类模板和函数模板。本文汇集了大量有关的信息,指引你逐步阅读。本文用提问,设计和解决方案引导阅读。希望你能喜欢。问题提转载 2007-09-16 00:45:00 · 1271 阅读 · 0 评论 -
深入研究 STL Deque 容器
本文档深入分析了std::deque,并提供了一个指导思想:当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。 介绍本文深入地研究了std::deque 容器。本文将讨论在一些情况下使用deque比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。由于deque和vector的用转载 2007-09-30 21:07:00 · 687 阅读 · 0 评论 -
详细解说STL hash_map系列
详细解说STL hash_map系列 详细解说STL hash_map系列 0 为什么需要hash_map 1 数据结构:hash_map原理 2 hash_map 使用 2.1 一个简单实例 2.2 hash_map 的hash函数转载 2007-09-30 22:39:00 · 618 阅读 · 0 评论 -
关于STL中stack的实现的讨论
摘要: 文章讨论了为什么大多数STL的stack的实现中,对于内部的容器默认选择deque容器;并且给出了自己的几个不同想法实现的stack;并进行了简单的性能比较测试;(文章最后给出了一个性能、特性都无懈可击的stack的实现!) 文章来源于abp论坛中的一篇讨论帖子: http://bbs.allaboutprogram.com/viewtopic.php?t=1026这是自己开始接触泛转载 2007-09-30 21:09:00 · 1012 阅读 · 0 评论 -
STL中的函数对象(Funciont Objects)
概要一个函数对象(Function Object或者Functor)简单的说就是能够以函数调用的形式出现的任何东西。一个普通的函数显然就是一个函数对象,函数指针也是,更一般的,一个定义了operator()的Class也是。描述基本的函数对象的概念有Generator,Unary Function(一元函数),Binary Function(二元函数):他们各自表示能以F(),F(x),F(x转载 2007-09-30 22:36:00 · 707 阅读 · 0 评论 -
STL中map用法详解
STL中map用法详解 说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂。本人水平有限,不当之处,望大家辅正。一.Map概述Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候转载 2007-09-30 22:38:00 · 734 阅读 · 0 评论 -
学习auto_ptr
auto_ptr是std中的一个型别,是“它所指向的对象”的拥有者。auto_ptr是一种智能指针(Smart Poiner)。主要用于防止“在当程序抛出异常的时候,发生资源泄漏”问题的发生。auto_ptr的表现如下:当auto_ptr的生命周期结束的时候,那么它指向的对象也会被delete。 语法:std::auto_ptr ptr(new ClassName()); 需要原创 2007-10-08 10:57:00 · 590 阅读 · 0 评论 -
C++深度探索系列:智能指针(Smart Pointer)[一]
主题索引:一、剖析C++标准库智能指针(std::auto_ptr) 1.Do you Smart Pointer? 2.std::auto_ptr的设计原理 3.std::auto_ptr高级使用指南 4.你是否觉得std::auto_ptr还不够完美?二、C++条件,寻找构造更强大的智能指针(Smart Pointer)的 策略转载 2007-10-08 12:30:00 · 724 阅读 · 0 评论 -
学习STL map, STL set之数据结构基础
作者: winter 摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂转载 2007-09-30 22:40:00 · 820 阅读 · 0 评论 -
C++深度探索系列:智能指针(Smart Pointer) [二]
深度探索智能指针(Smart Pointer)主题索引:一、剖析C++标准库智能指针(std::auto_ptr) 1.Do you Smart Pointer? 2.std::auto_ptr的设计原理 3.std::auto_ptr高级使用指南 4.你是否觉得std::auto_ptr还不够完美?二、C++条件,寻找构造更强大的智能指针(Smart转载 2007-10-08 14:38:00 · 560 阅读 · 0 评论 -
关于STL算法
distance很多时候我们希望在一个 vector ,或者 list ,或者什么其他东西里面,找到一个值在哪个位置,这个时候 find 帮不上忙,而有人就转而求助手写循环了,而且是原始的手写循环:for ( int i = 0; i if ( vect[i] == value ) break;如果编译器把 i 看作 for scope 的一部分,你还要把 i 的声明拿出去。真的需要这样么原创 2007-11-05 13:50:00 · 672 阅读 · 0 评论 -
The Standard Librarian: What Are Allocators Good For?
Allocator是C++语言标准库中最神秘的部分之一。它们很少被显式使用,标准也没有明确出它们应该在什么时候被使用。今天的allocator与最初的STL建议非常不同,在此过程中还存在着另外两个设计--这两个都依赖于语言的一些特性,而直到最近才在很少的几个编译器上可用。对allocator的功能,标准似乎在一些方面追加了承诺,而在另外一些方面撤销了承诺。 这篇专栏文章将讨论你能用a原创 2007-11-05 14:52:00 · 1075 阅读 · 0 评论 -
C++ template Day Day Up 第一天 模板编译模式
痴迷于OO设计,在C++的应用中运用模式或者设计的时候却总是畏首畏脚的,怕没有回收内存,怕产生临时变量,怀念java和C#带给我们的方便,C++真的不行么?Linus那臭小子真的言中了?我不信,他的言论只是利用他的技术权威在进行的商业行为。那么C++程序到底应该怎么设计和编码才是优雅的、方便的呢? 无意间看了 Modern C++ design, 才明白原来template + OO 才是真正转载 2007-09-27 08:17:00 · 604 阅读 · 0 评论 -
C++ template Day Day Up 第三天 模板函数的重载
从C++ templates粘一段例子下来:// maximum of two int values inline int const& max (int const& a, int const& b) { return a} // maximum of two values of any type template inline T const&转载 2007-09-27 08:19:00 · 535 阅读 · 0 评论 -
详细解说STL string(一)
0 前言: string 的角色C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl, php, 和Shell脚本以后,开始理解了以前为什么有人说C+转载 2007-09-15 23:03:00 · 4246 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort) 作者Winter 详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握 1 STL提供的Sort 算法 1.1 所有sort算法介绍 1.2 sort 中的比较函数 1.转载 2007-09-16 00:39:00 · 613 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个转载 2007-09-15 23:22:00 · 542 阅读 · 0 评论 -
简单常识——关于string
toupper, tolower地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:string s("heLLo");transform(s.begin(), s.end(), s.begin(), toupper);cout transform(s.begin(), s.end(), s.begin(), tolower);cout转载 2007-09-17 22:23:00 · 631 阅读 · 0 评论 -
详细解说STL string(二)
(接上....) #includeiostream>#includeconio.h>#includestring>using namespace std;int main()...{ string s="a1234567bd2efg3"; char *p="2345"; string::size_type n1,n2; n1=s.find(p,3,2); n2=s转载 2007-09-15 23:21:00 · 1651 阅读 · 0 评论 -
简单常识——关于stream
从文件中读入一行简单,这样就行了:ifstream ifs("input.txt");char buf[1000];ifs.getline(buf, sizeof buf);string input(buf);当然,这样没有错,但是包含不必要的繁琐和拷贝,况且,如果一行超过1000个字符,就必须用一个循环和更麻烦的缓冲管理。下面这样岂不是更简单?string input;inp转载 2007-09-17 22:25:00 · 852 阅读 · 0 评论 -
C/C++头文件一览
传统 C++#include //设定插入点#include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量 #include //定义本地化函原创 2007-09-18 21:59:00 · 614 阅读 · 0 评论 -
简单实用的c++快速排序模板类
在实际问题的解决过程中,我们发现,很多问题都可以归结为对数据的排序和查询。而查询的效率则在很大程度上依赖于排序的效率;尤其是在数据量达到海量级的时候。因此,设计一个有效的排序算法是至关重要的。(一)目标在实际问题的解决过程中,我们发现,很多问题都可以归结为对数据的排序和查询。而查询的效率则在很大程度上依赖于排序的效率;尤其是在数据量达到海量级的时候。因此,设计一个有效的排序算法是至转载 2007-09-20 23:24:00 · 705 阅读 · 0 评论 -
重载、覆盖、多态与函数隐藏(转贴,值得一看)
经常看到C++的一些初学者对于重载、覆盖、多态与函数隐藏的模糊理解。在这里写一点自己的见解,希望能够C++初学者解惑。要弄清楚重载、覆盖、多态与函数隐藏之间的复杂且微妙关系之前,我们首先要来回顾一下重载覆盖等基本概念。首先,我们来看一个非常简单的例子,理解一下什么叫函数隐藏hide。#include using namespace std;class Base{public: void fun转载 2007-09-24 08:29:00 · 872 阅读 · 0 评论 -
XML文件的简单初步解析
摘要:通过扫描字符串及结构体数组,实现对XML文件的简单初步解析。关键字:XML,解析主要算法:XML文件的实质是字符串,解析XML的工作主要是了解XML的规则,从而对字符串进行分析,解析。从XML文件的开始扫描,连续获得2个标签的位置,转化为字符串,比较firstname和nextname,如果匹配关闭,则把标签名,内容,层次,存放到结构体数组中,继续扫描,如果不匹配,则把firstname压转载 2007-09-25 15:21:00 · 693 阅读 · 0 评论 -
C++ template Day Day Up 第二天 模板参数推论(deduction)
Today’s subject is Compile Argument Deduction. 我们平时用template的时候往往需要指定template argument type,实际上很多种情况可以不指定具体的类型,而依赖于编译器的deduction(个人推荐把这个单词翻译成推论,能表达出实际的行为,侯捷翻译这个单词为演绎,可能台湾这么说,总觉得怪怪的)。先举一个小例子(refe转载 2007-09-27 08:18:00 · 612 阅读 · 0 评论 -
Effective Standard C++ Library: for_each() vs. transform()
Klaus Kreft and Angelika Langerhttp://www.cuj.com/experts/1902/langer.htm?topic=experts Note: Article updated on January 5, 2001for_each()和transform()的区别 泛型算法for_each()和transform()常被认为原创 2007-11-05 23:41:00 · 1036 阅读 · 0 评论