标准c stl 总结

标准c stl 总结

ID:17554810

大小:36.00 KB

页数:11页

时间:2018-09-03

标准c   stl 总结_第1页
标准c   stl 总结_第2页
标准c   stl 总结_第3页
标准c   stl 总结_第4页
标准c   stl 总结_第5页
资源描述:

《标准c stl 总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、标准CSTL总结STL,成功的将算法与数据结构分离,在没有效率损失的前提下,得到了及大的弹性。六大组件容器(Container)算法(Algorithm)迭代器(Iterator)仿函数(Functionobject)适配器(Adaptor)空间配制器(allocator)Set,Map都不能用push_back,push_front,因为它是自动排序的。Sets/Multisets内部的元素依据其值自动排序Set内的相同数值的元素只能出现一次,Multisets内可包含多个数值相同的元素。内部由二叉树实现,便于查找。Maps/MultimapsMap的元素是成对的键值/实值,内部的元素

2、依据其值自动排序。Map内的相同数值的元素只能出现一次,Multimaps内可包含多个数值相同的元素。内部由二叉树实现,便于查找。所有容器的共同操作一。所有容器都提供了一个默认的构造函数,一个拷贝构造函数。例:listl;....vectorivector(l.begin(),l.end());intarray[]={1,2,3,4};....setiset(array,array+sizeof(array)/sizeof(array[0]));二。与大小相关的函数size(),empty(),max_size()三。返回迭代器的函数begin(),end(

3、),rbegin(),rend()四。比较操作==,!=,<,>,>=....Vector详解:capacity(),返回vector能够容纳的元素个数。size(),返回vector内现有元素的个数。赋值操作:c1=c2;把c2的全部元素指派给c1c.assign(n,elem);复制n个elem,指派给cc.assign(beg,end);将区间beg,end内的元素指派给cc1.swap(c2);将c1,c2元素互换swap(c1,c2);同上元素存取c.at(index);c[index];c.front();返回第一个元素c.back();插入和删除:c.insert(pos.

4、elem);c.insert(pos,n.elem);插入n个elemc.insert(pos,beg,end);在pos出插入beg,end区间内的所有元素。c.push_back(elem);c.pop_back();c.erase(pos);删除pos上的元素,返回下一个元素c.erase(beg,end);c.resize(num);将元素数量改为num,如果size变大了,多出来的新元素都要一default方式构建。c.resize(num,elem);将元素数量改为num,如果size变大了,多出来的新元素是elem的副本。c.clear();删除所有。vector的rese

5、rve和resizereserve只分配空间,而不创建对象,size()不变。而resize分配空间而且用空对象填充.reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。resize是改变容器的大小,并且创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。再者,两个函数的形式是有区别的,reserve函数之后一个参数,即需要预留的容器的空间;resize函数可以有两个参数,第一个参数是容器

6、新的大小,第二个参数是要加入容器中的新元素,如果这个参数被省略,那么就调用元素对象的默认构造函数。vector有而deque无的:capacity(),reserve();deque有而vector无的:push_front(elem),pop_front();push_back(elem),pop_back();STL提供的另两种容器queue、stack,其实都只不过是一种adaptor,它们简单地修饰deque的界面而成为另外的容器类型List详解:for_each(.begin(),.end(),“函数”);count(.begin(),.end(),100,jishuqi);返

7、回对象等于100的个数jishuqi值。count_if()带一个函数对象的参数(上面“100”的这个参数)。函数对象是一个至少带有一个operator()方法的类。这个类可以更复杂。find(*.begin().*end(),“要找的东西”);如果没有找到指出的对象,就会返回*.end()的值,要是找到了就返回一个指着找到的对象的iteratorfine_if();与count_if()类似,是find的更强大版本。STL通用算法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。