C++ STL
文章平均质量分 51
bodogbo11
这个作者很懒,什么都没留下…
展开
-
c++ stl library 学习(4)
Class auto_ptr ://用于当异常发生时,产生的内存泄露,因为异常发生时,立即停止了某些函数 的执行,可能导致有些以前new的内存没有被delete。in include provided by the C++ standard library as a kind of a smart pointer that helps to avoid resource leaks whe原创 2012-10-29 16:12:51 · 396 阅读 · 0 评论 -
关于初始化C++类成员
在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种:第一种方法:1.CMYClass::CSomeClass()2.{3.x=0;4.y=1;5.}第二种方法:1.CSomeClass::CSomeClass() : x(0), y(1)2.{3.}本文转载 2012-11-14 16:09:42 · 324 阅读 · 0 评论 -
C++编程对缓冲区的理解
什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲转载 2012-11-14 16:48:10 · 425 阅读 · 0 评论 -
C++中的临时对象
关于引用和指针的区别的文章很多很多,但是总是找不到他们的根本区别,偶然在codeproject上看到这篇文章,觉得讲的挺好的,所以翻译了下,希望对大家有帮助。原文地址: http://www.codeproject.com/KB/cpp/References_in_c__.aspx 引言 我选择写 C++ 中的引用是因为我感觉大多数人误解了引用。而我之所以有这个感受是转载 2012-12-04 11:39:05 · 508 阅读 · 0 评论 -
c++ 引用
一、引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 说明:(1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名转载 2012-12-04 11:26:25 · 982 阅读 · 0 评论 -
C++中rdbuf重定向流的经典例子
:#include #include int main(void){ std::ifstream log("out.log"); std::streambuf* x = cout.rdbuf(log.rdbuf()); // 返回cout的流对象指针,使cout重定向到log文件中 std::cout std::cout.rdbuf(x); // 恢复c转载 2012-12-04 16:29:00 · 2476 阅读 · 1 评论 -
MFC 消息分类
3大类:窗口消息、控件通知消息、命令消息1、窗口消息:创建、移动、销毁以及使用键盘、鼠标等与窗口操作有关的消息均属于窗口消息,个人理解就是系统以窗口为对象,为它准备的一些方法。ON_WM,但是除菜单和toolbar以外。2、控件通知消息:控件即窗口上的子窗口(如按键等),控件上有事件发生时,控件或者其它子窗口将消息发送给父窗口的消息。ON_BN_CLICKED3原创 2012-12-05 11:59:43 · 450 阅读 · 0 评论 -
给C++初学者的50条忠告
来源:21IC电子网 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、M转载 2012-12-20 09:51:29 · 432 阅读 · 0 评论 -
内联函数
内联函数就是小型函数,牺牲空间来节省函数调用的开销,一般用作比较小的函数,即函数内部没有循环、开关语句等。内联函数被发明出来就是为了取代C中的宏,因为宏是单纯的替换而没有类型检查所以经常出毛病,比如:#define MAX(a, b) (a) > (b) ? (a) : (b)如果你在代码中这样写:int a = 5, b = 10;// int max = MAX(++a, b)转载 2013-01-23 09:04:45 · 385 阅读 · 0 评论 -
c函数返回指针
我有一个程序是这样的:int main(){ int *p; int i; int*fun(void); p=fun(); for(i=0;i<3;i++) { printf("%d\n",*p); p++; } return 0;};int* fun(void){ static int str[]={1,2,3,4,5}; int*q=st转载 2013-01-25 14:40:08 · 3637 阅读 · 0 评论 -
strcat、strcpy、strcmp的实现,以及有关字符串处理需要注意的地方
注释:以下所有测试在freescale codewarrior中完成//将字符串t复制到字符串s//sizeof(s) >= sizeof(t)void strcpy(char* s, char*t){ while(*s++ = *t++);}我们在不同的字符串下测试函数的性能1: char s[] ="hello"; //sizeof(s) == 6 char t[]原创 2013-01-29 15:16:55 · 573 阅读 · 0 评论 -
restrict关键字
本文摘自: http://www.oschina.net/question/32294_53573restrict是C99引入的新关键字,它用于声明只会通过该指针对其指向的内存空间进行读写操作,以便编译器能进行更好的优化。我们来看一个跟memcpy/memmove类似的问题。下面的函数将两个数组中对应的元素相加,结果保存在第三个数组中。void vector_add(const转载 2013-02-21 10:42:48 · 646 阅读 · 0 评论 -
创建和访问环境变量
环境变量的构成环境变量由一对字符串组成,格式为:变量=关联值。例如:1.PATH=C:\WINDOWS在DOS和WINDOWS中,你可以从命令行或在批处理文件中定义环境变量,方法是使用SET命令,后面跟赋值表达式。下面是一个创建环境变量的例子,1.SET VERSION=1.1.3在Unix中可以省略前面的SET,写为:转载 2012-11-14 16:01:21 · 582 阅读 · 0 评论 -
在预先定义的内存位置构造一个对象
常常有人问这样一个C++问题:如何在预先定义的内存位置构造一个对象?在预先定义的内存缓冲构造一个对象有许多有用的应用。例如,一个定制的垃圾搜集器能使用一个大的预分配内存缓冲,用户在这个缓冲中构造其对象。当不再需要这些对象时,它们的存储空间被自动收回。这个技术在重视时间的应用中也很有用。在预先分配的内存缓冲构造一个对象是一种“时间常量”操作,之所以这样说是因为程序分配操作本身不会浪费宝贵的时转载 2012-11-14 15:46:58 · 485 阅读 · 0 评论 -
fstream的使用方法介绍
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(fi转载 2012-11-14 16:43:47 · 399 阅读 · 0 评论 -
c++ stl library 学习(5)
Numeric Limitsold :#include or #include standard : #include Class numeric_limitsAuxiliary Functions:in #include min 、max、 swapnamespace std {template inline const T& min (const T&原创 2012-10-29 17:08:36 · 292 阅读 · 0 评论 -
c++ stl library 学习(6)
Sequence Containers:Vectors:vector coll;//初始化时为空,没有元素。push_back().size()By using the subscript operator [], you can access a single element of a vector:coll[i ]random access av原创 2012-10-30 11:27:55 · 462 阅读 · 0 评论 -
c++ stl library 学习(7)
Algorithms:searching, sorting, copying,reordering, modifying, and numeric processing.Algorithms are not member functions of the container classes. Instead, they are global functionsthat operate wi原创 2012-10-30 17:44:31 · 374 阅读 · 0 评论 -
c++ stl library 学习(8)
Predicates:Unary Predicates and Binay Predicatesbool isPrime (int number);list::iterator pos;pos = find_if (coll.begin(), coll.end(), //rangeisPrime); //predicate //返回isPrime为True的第一个元素的位置。如原创 2012-10-31 11:32:57 · 379 阅读 · 0 评论 -
C++ STL 容器适配器
标准库提供了三种顺序容器适配器:queue、priority_queue、stack.适配器是标准库中通用的概念,包括容器适配器、迭代器适配器和函数适配器。 本质上,适配器是使一事物的行为类似于另一类事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。例如,stack适配器可使任何一种顺序容器以栈的方式工作。如下列出了所有转载 2012-11-01 09:27:45 · 541 阅读 · 0 评论 -
ostream_iterator详细解析
ostream_iterator属于I/O流STL适配器,用于获取一个元素,同时保存在缓冲器中,可以供Cout输出。如果把cout看做成一个对 象,那么在Cout对象当中存在一片用于数据存储的区域。ostream_iterator在STL中一般配合copy函数一起使用,如下代码; ostream_iterator output(cout, " "); //关联cout,设置转载 2012-11-01 09:29:37 · 819 阅读 · 0 评论 -
c++ stl library 学习(9)
Requirements for Container Elements:1. An element must be copyable by a copy constructor.能够被复制构造函数复制2. An element must be assignable by the assignment operator能够被赋值操作符操作3 An element must be原创 2012-11-01 11:00:03 · 423 阅读 · 0 评论 -
linux和STL 常用头文件及说明
1、 Linux中一些头文件的作用::ANSI C。提供断言,assert(表达式):GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等 :ANSI C。字符测试函数。is转载 2012-10-26 09:57:30 · 1640 阅读 · 0 评论 -
c++ stl library 学习(2)
NamespacesYou don't have to qualify the namespace for functions if one or more argument types are definedin the namespace of the function. This rule is called Koenig lookup. For example://你不需要为每个函原创 2012-10-25 16:14:18 · 417 阅读 · 0 评论 -
c++ stl library 学习(1)
核心思想: The STL was designed to combine different data structures with different algorithms while achieving the best performance。为了达到最好的效率,不同的数据结构采用不同的算法! Almost all parts of the libr原创 2012-10-25 15:10:07 · 422 阅读 · 0 评论 -
c++ stl library 学习(3)
C++STL中所有的identifiers都定义在namespace std中。 STL 头文件,采用没有扩展名的方式引用头文件,eg,#include c语言同样采用在加上前缀c的方式,eg,#include的方式。//was #include 无扩展名只适应于标准头文件。如果是你自己写的头文件最好加上.h。#include #include为old head filer.原创 2012-10-26 14:40:52 · 471 阅读 · 0 评论 -
C语言中的无符号数与有符号数混合运算时隐含转换问题
//开发平台VC++6.0 #include #include int strLonger(char*,char*); void main(){ char *s = "d"; char *t = "Id"; printf("%d\n",strLonger(s,t)); } int strL转载 2013-03-12 10:48:30 · 835 阅读 · 0 评论