- 博客(12)
- 资源 (2)
- 收藏
- 关注
转载 C/C++中枚举类型(enum)的使用解惑
枚举类型,顾名思义,“枚”作为量词,作“个”讲,那么枚举,就是一个一个的列举,如果一件事情能够被一个一个的列举,那么它的数量肯定就是有限的,否则是不能被一一列举出来的。所以枚举类型即为能被列举的常量的一个集合。在 生活中,枚举的例子随处可见,比如礼拜几,那么就可以作为一个枚举变量。这个变量所存储的值,是有限的,且,能被我们所列举。再比较说,性别。它也可以作 为一个枚举类型,我们知道,性别也就只
2012-08-30 09:46:18 1325
转载 内部连接和外部连接
在说内部连接与外部连接前,先说明一些概念。 1.声明 一个声明将一个名称引入一个 作用域; 在c++中,在一个作用域中重复一个声明是合法的 以下都是声明: int foo(int,int); //函数前置声明 typedef int Int; //typedef 声明 class bar; //类前置声明 extern
2012-08-29 10:09:32 736
转载 cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>> 用法1:最基本,也是最常
2012-08-29 09:32:33 672
原创 C++ system函数用法
int system( const char *command ); int _wsystem( const wchar_t *command ); command: Command to be executed sample: //system.c #include void main( void ) { system( "typ
2012-08-28 22:24:01 9478
原创 STL函数对象及函数对象适配器
一 函数对象Functor STL中提供了一元和二元函数的两种Functor,通过unary_function和binary_function提供了这两种不同参数数量的Functor的基本结构,在这两个类型中,分别内嵌定义一元和二元函数操作在模版推演的时候需要用到的typedef. //一元函数的定义为templatestruct unary_function {
2012-08-14 21:46:40 830
原创 C++ 智能指针
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷
2012-08-13 00:12:25 598
原创 C++ 直接初始化和复制初始化
在C++里,对象初始化是一个非常重要但又容易令人混淆的问题。这里是自己的一些总结。一。初始化与赋值的含义:初始化:包括创建(或说定义)对象并且赋给初值。(如果一个对象只被创建而没有被初始化,则该变量只能用于被赋值)。赋值: 擦除对象的当前值并用新值代替。二。内置类型:(一)直接初始化:1.空初始化:即无参数无括号形式如int i,new int,new int[
2012-08-11 22:02:36 1101
转载 复制构造函数(拷贝构造函数)
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。为了说明复制构造函数作用,我先说说我们在编程时会遇到的一些问题。对于C++中的函数,我们应该很熟悉了,因为平常经常使用;对于类的对象,我们也很
2012-08-11 21:36:36 939
原创 深复制与浅复制(深拷贝与浅拷贝)
拷贝有两种:深拷贝,浅拷贝当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象。所以,这时,必须采用深拷贝。深拷贝与浅拷贝的区别就
2012-08-10 17:58:06 3196
原创 容器适配器
STL学习系列之六—容器适配器STL提供了三种容器适配器:stack,queue,priority_queue。适配器并不是第一类容器,因为它们并没有提供与元素的保存形式有关的真正数据结构实现,并且适配器不支持迭代器。适配器的优点是:能够使程序员选择一种合适的底层数据结构。这三个适配器类都提供了成员函数push和pop,能够在每个适配器数据结构中正确地插入和删除元素。1、 st
2012-08-05 12:05:00 1663 3
原创 vector.resize 与 vector.reserve的区别
reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。resize是改变容器的大小,并且创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。再者,两个函数的形式是有区别的,reserve函数之
2012-08-04 09:12:35 690
原创 vector容器与iterator迭代器
vector容器vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。使用vector之前,必须包含相应的头文件。#include using std::vector;vector是一个类模板(class
2012-08-02 16:28:15 39912 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人