2 >boost asio asio,一个跨平台的支持异步I/O的网络通讯socket库 2
10.面向对象的static关键字(类中的static关键字) 31
1> STL学习
标准模板库 STL= standard template library STL是一些容器的集合,这些容器有list,vector,set,map等,STL也是算法和其他一些组件的集合。
STL被内建在你的编译系统中。在C++标准中,STl被组织为下面的13个头文件:<algorith>,<depue>,<function>,<iterator>,<vector>,<list>,<map>,<memeory>,<numeric>,<queue>,<set>,<stack>,<utility>
算法部分主要有头文件<algorithm>,<numeric>,<functional>组成。<algorithm>是所有STL头文件中最大的一个(尽管他很好理解),它是由一大推模板函数组成的,可以认为每个函数在很大程度上都是独立的,其中常有到的功能范围涉及到比较,交换,查找,遍历操作,复制,修改,反转,排序,合并等等。<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。<funtional>中则定义了一些模板类,可以声明函数对象。
容器
在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要。通过设置一些模板类,STL容器对最重要的数据结构提供了支持,这些模板的参数允许我们制定容器中的元素的数据类型,可以将我们许多重复而乏味的工作简化。
容器部分主要由头文件<vector>,<list>,<depue>,<set>,<map>,<stack>,<queue>组成。
数据结构 |
描述 |
实现头文件 |
向量(vector) |
连续存储的元素 |
<vector> |
列表(list) |
由节点组成的双向链表,每个结点包含着一个元素 |
<list> |
双队列(deque) |
连续存储的指向不同元素的指针所组成的数组 |
<deque> |
集合(set) |
由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序 |
<set> |
多重集合(multiset) |
允许存在两个次序相等的元素的集合 |
<set> |
栈(stack) |
后进先出的值的排列 |
<stack> |
队列(queue) |
先进先出的值的排列 |
<queue> |
优先队列(priority_queue) |
元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 |
<queue> |
映射(map) |
由{ 键,值}对组成的集合,以某种作用于键对上的谓词排列 |
<map> |
多重映射(multimap) |
允许键对有相等的次序的映射 |
<map> |
迭代器在STL中用来将计算和容器联系起来,起着一种粘合剂的作用。几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所有的迭代器,用以存取容器中的元素。
迭代器 部分主要由头文件<utility>,<iterator><memory>组成。<utility>是一个很小的头文件,它可以贯穿使用在STL中的几个模板的声明,<iterator>中提供了迭代器使用的许多方法,而对于<memory>的描述则十分的困难,他以不同寻常的方式为容器中的元素分配存储空间,同时也为某些算法执行期间产生的临时对象提供机制,<memeory>中的主要部分是对模板类allocator,他负责产生所有容器中的默认分配器。
C++的指针也是一种迭代器。STL可以说就是以模板为基础的一个标准库。
模板是C++ STL的一个重要的内容,STL是C++的标准库。
2 >boost asio
asio,一个跨平台的支持异步I/O的网络通讯socket库
3>模板
重载达不到的效果,模板是C++参数多态化的工具。函数模板,类模板
函数模板 remple<class T> 是函数产生器,本身不是函数,能产生多种数据类型
Temple <class T>函数模板的函数体一样
Bool bigeer(T num, T nam2)
{
If(num > num2) return ture;
Else return false;
}
bigger <int>(1 , 2);bigger <double>(1 , 2);利用temple创造了两个函数
类模板
Temple <模板参数列表>
类声明
Temple <class T>
Class Array{
Enum {size = 100};
T A[size];
Public :
T& operator[](int index){ return A[index];}
}
Array<int> ia; Array<float> fa; 参数化多态
4>boost timer
Timer位于命名空间boost,为了使用timer组件,需要包含头文件<boost/timer.hpp>
#include <boost/timer.hpp>
Using namespace boost;
#include <string>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
Using namespace std;
5>shared_ptr
Shared_ptr早期叫做counted_ptr,他实现了引用计数型的智能指针,与scoped_ptr一样包装了new操作符在堆上分配的动态对象,但是可以被自由的拷贝和赋值。
Temple<class T>
Class shared_ptr{
Public : typedef T element_type;
6>Oracle 表数据的C++存取接口 occi
Oracle表数据的C/C++存取方法 OCCI
OCCI是Oracle提供的c++调用接口,全名为Oracle C++ Call Interface,在9I