STL阶段性总结

STL:
vector容器的构造函数:
vector():创建一个空vector
vector(int nSize):创建一个vector,元素个数为nSize
vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
vector(const vector&):复制构造函数
vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
map/multimap:可以做映射,对于操作类有很大帮助,,pair可以生成键值对。
vector:类似于动态数组,支持存取,更好的一个方面是,如果遇到空间不足,可以自动追加空间;
set/multiset:集合,快速查找时可使用,set与map很相似,没有关键字,不可进行下标操作;
算法
算法中常用到的两个参数是一对迭代器[frist,las),用来表示容器的范围。
sort是用来排序地一个算法;
find: 利用底层元素的等于操作符,对指定范围内的元素与输入值进行比较。当匹配时,结束搜索,返回该元素的一个iterator。
find_end: 在指定范围内查找"由输入的另外一对iterator标志的第二个序列"的最后一次出现。找到则返回最后一对的第一个iterator,否则返回输入的"另外一对"的第一个iterator。重载使用用户输入的操作符代替等于操作。
find_first_of: 在指定范围内查找"由输入的另外一对iterator标志的第二个序列"中任意一个元素的第一次出现。也可以自拟定操作符。
二分查找使用之前必须前对容器进行排序,每次查找都是随机的。
count: 利用等于操作符,把标志范围内的元素与输入值比较,返回相等元素个数。
count_if: 利用输入的操作符,对标志范围内的元素进行操作,返回结果为true的个数。
函数调用:

  1. push_back()           在数组的最后添加一个数据
  2. pop_back()            去掉数组的最后一个数据
  3. at()                  得到编号位置的数据
  4. begin()              得到数组头的指针
  5. end()                 得到数组的最后一个单元+1的指针
    6.front()               得到数组头的引用
  6. back()                得到数组的最后一个单元的引用
  7. max_size()            得到vector最大可以是多大
  8. capacity()            当前vector分配的大小
    10.size()                当前使用数据的大小
    11.resize()              改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
    set_union: 构造一个有序序列,包含两个序列中所有的不重复元素。重载版本使用自定义的比较操作。set_intersection: 构造一个有序序列,其中元素在两个序列中都存在。重载版本使用自定义的比较操作。set_difference: 构造一个有序序列,该序列仅保留第一个序列中存在的而第二个中不存在的元素。重载版本使用自定义的比较操作。set_symmetric_difference: 构造一个有序序列,该序列取两个序列的对称差集(并集-交集)。
    使用时注意包含头文件    std::set and std::multiset associative containers
    set容器常用操作
    s.begin()      返回set容器的第一个元素
    s.end()      返回set容器的最后一个元素
    s.clear()       删除set容器中的所有的元素
    s.empty()     判断set容器是否为空
    s.insert()      插入一个元素
    s.erase()       删除一个元素
    s.size()     返回当前set容器中的元素个数
    普通查找:构造map映射来查找,这及解决了查找时间问题,又缓解了将借阅记录存放在resder,与book里各一份地问题,减少了空间地使用,但是在删除操作中,必须将map清空后重新构建。
    pair< multimap<string,int>::iterator,multimap<string,int>::iterator> range;
    range=sno_record.equal_range(sno);1
    模糊查找:在模糊查找中用到了find_if(),这个可以自定义筛选函数,有时会用到筛选类,这里的我还用到了的时判断字符串的子串
    体会:
    在学习STL以及实践的过程中,理解到学好c++是真的不容易,也了解到自己欠缺的东西,然而在这次实验,也有很多知识点明明理解,但操作时候却实现的相当困难,查阅了一些资料,最后回顾老师讲过的东西,到头来发现其实这些问题也没有想象中那么的难,有时候听了新的知识,就没有及时巩固以前的,再写代码时候还是用不上,效率太低,以后还要多强化自己。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值