标准模板库

STL是C++标准程序库的核心,深刻影响了标准程序库的整体结构,STL内的所有组件都由模板(template)构成,其元素可以是任意类型。

STL组件:

1容器(Container) - 管理某类对象的集合

2迭代器(Iterator) - 在对象集合上进行遍历

3算法(Algorithm) - 处理集合内的元素

4容器适配器(container adaptor)

5函数对象(functor)

STL容器元素的条件

1必须能够通过拷贝构造函数进行复制

2必须可以通过赋值运算符完成赋值操作

3必须可以通过析构函数完称销毁动作

4序列式容器元素的默认构造函数必须可用

5某些动作必须定义operator ==,例如搜寻操作

6关联式容器必须定义出排序准则,默认情况是重载operator <

对于基本数据类型(int,long,char,double,…)而言,以上条件总是满足。

STL容器的共同能力是所有容器中存放的都是值而非引用。如果希望存放的不是副本,容器元素只能是指针。所有元素都形成一个次序(order),可以按相同的次序一次或多次遍历每个元素。

vector模拟动态数组

vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public拷贝构造函数和重载的赋值操作符)必须包含的头文件#include<vector>vector支持随机存取vector的大小(size)和容量(capacity)size返回实际元素个数,capacity返回vector能容纳的元素最大数量。如果插入元素时,元素个数超过capacity,需要重新配置内部存储器。

关于vector模拟动态数组的操作:vector<T> c,产生空的vector。vector<T> c1(c2),产生同类型的c1,并将复制c2的所有元素。vector<T> c(n,e),产生一个大小为n的vector,每个元素都是e。vector<T> c(n),利用类型T的默认构造函数和拷贝构造函数生成一个大小为n的vector。vector<T> c(beg,end),产生一个vector,以区间[beg,end]为元素初值。~vector<T>(),销毁所有元素并释放内存。c.push_back(e),在尾部添加一个元素e的副本。

         Maps/MultimapsMap的元素是成对的键值/实值,内部的元素依据其值自动排序。Map内的相同数值的元素只能出现一次,Multimaps内可包含多个数值相同的元素。内部由二叉树实现,便于查找。

         这里的算法很多还不会用,这也是挑着几个重要的操作写的。至于maps的了解还少,后面再联系理解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值