低调、勤奋。
发布时间:2013-01-13 11:01:51
终于学习到了类了,不容易。12.1 类的定义和声明类:就是定义了一个新的类型和一个新作用域。类成员:每个类可以没有成员,也可以定义多个成员,成员可以是数据、函数、类型别名。构造函数:创建一个类类型的对象时,编译器会自动使用一个构造函数来初始化该对象。构造函数一般就使用一个构造函数初始化列表来初始化对象的数据成员。如:Sales_item():units_sold(0),revenus(0,0) {} //位于冒号和大括号之间成员函数:在类内部,定义的函数默认为inline。将关键字const加在形参表后,就可以将成员函数声明为常量:double avg_price() const;const成......【阅读全文】
发布时间:2013-01-09 22:10:42
一、插入迭代器C++语言提供了三种插入器,其差别在于插入元素的位置不同。back_inserter, 创建使用push_back实现插入的迭代器。front_inerter,创建使用push_front实现插入inserter,使用insert实现插入操作二、反向迭代器反向迭代器是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。反向迭代器将自增(和自减)的含义反过来了:对于反向迭代器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。// reverse iterator of vector from back to front vec......【阅读全文】
发布时间:2013-01-07 10:01:04
第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。但是宏也有很多的不尽人意的地方。1、宏不能访问对象的私有成员。2、宏的定义很容易产生二意性。我们举个例子:#define square(x) (x*x)我们用一个数字去调......【阅读全文】
发布时间:2013-01-06 21:32:39
基本概念:泛型算法本身从不执行容器操作,只是单独依赖迭代器和迭代器操作实现。算法也许会改变存储在容器中的元素的值,也许会在容器中移动元素,但是,算法从不直接添加或删除元素。头文件:#include <algorithm>#include <numeric>1、只读算法//把string类型的vector容器中的元素连接起来。string sum = accumulate(v.begin(), v.end(), string(""));//把int型的vector容器中元素累加int sum = accumulate(v.begin(), v.end(), 100); /......【阅读全文】
发布时间:2012-12-30 11:24:08
一、pair类型pair包含两个数据值,与容器一样,pair也是一种模版类型。在创建pair对象时,必须提供两个类型名:pair对象所包含的两个数据成员各自对应的类型名字,这两个类型必须相同。如:pair<string, string> anon;pair<string, int> word_count;pair<string, vector<int> > line;可采用typedef简化其声明:如:typedef pair<string, string> Author; Auth......【阅读全文】