关于C++的STL与运算符重载的一些见解



STLStandard Template Library),即标准模板库,该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法,C++标准模板库的核心包括以下组件:

 

         组件                               描述

容器(Container             ——  用来管理某一类对象的集合。c++提供了各种不同类型的容器

                                     如:dequelistvectormap等。

迭代器(Iterator            ——  用于遍历对象集合的元素。

算法(Algorithm             ——  处理集合内的元素。它们提供了执行各种操作的方式,

                                     如:对容器的内容执行初始化、排序、搜索和转换等。

.容器概述:

1)顺序容器

     将单一类型元素聚集起来成为容器,然后根据位置

来储存和访问这些元素。(vector

vector: 后部插入\删除,直接接访问

deque: \后部插入\删除,直接访问

list: 双向链表,任意位置插入\删除

2)关联容器

   支持通过键来高效的查找和读取元素(mapset

   set: 快速查找,无重复元素

   multiset: 快速查找,可有重复元素

   map: 一对一映射,无重复元素,基于关键字查找

   multimap:一对一映射,可有重复元素,基于关键字查找

3)容器适配器(关联容器)

   stack: LIFO(后进先出)

    queue: FIFO(先进先出)

2.STL容器的共同操作

(1)初始化(initialization

产生一个空容器

std::list<int> l;

以另一个容器元素为初值完成初始化

Std::list<int> l;

std::vector<float>c(l.begin(),l.end());

以数组元素为初值完成初始化

int array[]={2,4,6,1345};

std::set<int>c(array,array+sizeof(array)/sizeof(array[0]));

(2)与大小相关的操作(size operator

size()-返回当前容器的元素数量

empty()-判断容器是否为空

max_size()-返回容器能容纳的最大元素数量

(3)比较(comparison

==,!=,<,<=,>,>=

比较操作两端的容器必须属于同一类型

如果两个容器内的所有元素按序相等,那么这两个容器相等

采用字典式顺序判断某个容器是否小于另一个容器

4)赋值和交换

swap用于提高赋值操作效率

5)与迭代器相关的操作

begin()-返回一个迭代器,指向第一个元素

end()-返回一个迭代器,指向最后一个元素之后

rbegin()-返回一个逆向迭代器,指向逆向遍历的第一个

rend()-返回一个逆向迭代器,指向逆向遍历的最后一个元素之后

6)元素操作

insert(pos,e)-将元素e的拷贝安插于迭代器pos所指的位置

erase(beg,end)-移除[begend]区间内的所有元素

clear()-移除所有元素

 

二.迭代器:

可遍历STL容器内全部或部分元素的对象

指出容器中的一个特定位置

迭代器的分类:

1)双向迭代器

可以双向行进,以递增运算前进或以递减运算后退、可以用&#

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值