STL训练总结

一、什么是STL?

STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。
它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。
这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。
STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在你的编译器之内。(转)

二、个人对STL的使用经验及心得

本次练习感觉到了STL的便利性,在这里,讲一下用的最多的三个:MAP,VECTOR,SORT

MAP:

map是一种容器,他可以以任意数据类型为下标,非常的便利。

头文件:#include <map>

定义:map<data_type1, data_type2> map_name;

如:map<string, int> m;//默认按string由小到大排序

操作:

m.size()返回容器大小

m.empty()返回容器是否为空

m.count(key)返回键值等于key的元素的个数

m.lower_bound(key)返回键值等于key的元素的第一个可安插的位置

m.upper_bound(key)返回键值等于key的元素的最后一个可安插的位置

m.begin()返回一个双向迭代器,指向第一个元素。

m.end()返回一个双向迭代器,指向最后一个元素的下一个位置。

m.clear()讲整个容器清空。

m.erase(elem)移除键值为elem的所有元素,返回个数,对于map来说非01

m.erase(pos)移除迭代器pos所指位置上的元素。

直接元素存取:

m[key] = value

查找的时候如果没有键值为key的元素,则安插一个键值为key的新元素,实值为默认(一般0)

m.insert(elem)插入一个元素elem

关于map的迭代器:

map<string,int>m2;

map<string, int>::iterator p1, p2;这里p1,p2就是迭代器,类似于指针。

m.egin()返回一个双向迭代器,指向第一个元素。

m.end()返回一个双向迭代器,指向最后一个元素的下一个位置。

如p1=m.begin();   p1就是指向第一个元素的指针。

另外 迭代器->first是键值 迭代器->second是value

SORT

sort是一个排序函数

头文件:#include <algorithm>

sort(begin,end);

sort(begin,end, cmp);

例:

  intnum[] = {1,5,6,2,9};

 

  1)sort(num, num + 5);//默认从小到大排序num[]= {1,2,5,6,9};

  2)bool cmp(inta, int b){

  returna > b;

  }

  sort(num,num + 5, cmp);//num[] = {9,6,5,2,1};

VECTOR

头文件:#include <vector>

定义:vector<data_type> vector_name;

  如:vector<int> v;

操作:

  empty() -- 返回bool型,表示vector是否为空 (v.empty())

  size() -- 返回vector内元素个数 (v.size())

  push_back(data_typea) 将元素a插入最尾端

  pop_back()将最尾端元素删除

  v[i] 类似数组取第i个位置的元素(v[0])



STL别的知识点和用法还有很多,我会继续在实践中,体会领悟他们。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值