stl,boost,thread,IOCP,socket

这篇博客涵盖了C++中的关键技术和概念,包括STL的学习,如算法、容器和迭代器;深入介绍了Boost Asio库,它是用于异步I/O网络通信的工具;讨论了模板和智能指针如shared_ptr的使用;涉及了Oracle数据库的C++接口OCCI;详细探讨了多线程编程,如临界区对象、线程同步机制和互斥锁的实现;最后,还展示了STL的实例,如map和list的使用。
摘要由CSDN通过智能技术生成
 

1> STL学习 1

2 >boost asio asio,一个跨平台的支持异步I/O的网络通讯socket 2

3>模板 2

4>boost timer 3

5>shared_ptr 3

6>Oracle 表数据的C++存取接口 occi 3

7>多线程编程 4

8>STL例子 10

8>socket编程 22

9> IOCP编程 23

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

OCCIOracle提供的c++调用接口,全名为Oracle C++ Call Interface,在9I

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值