STL基础
liuchenjane
这个作者很懒,什么都没留下…
展开
-
C++模板
函数模板template <typename T>void swap(T & a, T & b){ T temp=a; a=b; b=temp;}类模板 template //关键字template定义一个模板,Type是一个通用的类型说明符 或者template 例子:template class <typename Type> class Stac原创 2016-10-13 19:27:58 · 261 阅读 · 0 评论 -
C++中的pair对组
pair将两个值视为一个单元,使用pair可以来管理键值/实值(key/value)的成对元素。 pair实现的简易代码:#include <iostream>#include <string>#include <cstring>using namespace std;template <class T1,class T2>struct Pair{ //type names fo原创 2016-10-17 14:56:53 · 483 阅读 · 0 评论 -
C++智能指针
三个智能指针模板都定义了类似于指针的对象,可以将new获得的地址赋给这种对象。当智能指针过期时,其析构函数将使用delete来释放内存。因此,如果将new返回的地址赋给这些对象,将无需记住稍后释放这些内存:在智能指针过期时,这些内存的释放是自动的。 1. auto_ptr(C++98) 2. unique_ptr (C++11) 3. shared_ptr智能指针与常规指针:常规指针原创 2016-10-18 21:42:31 · 320 阅读 · 0 评论 -
STL组件之容器
容器:管理某类对象的集合迭代器:在一个对象集群的元素进行遍历,为所有的容器提供一组很小的公共接口,与指针类似,以operator++累进,以operator*提所指值算法:处理集群内的元素STL的一个根本特性:所有组件都可以针对任意types运作。 序列式容器 可序群集,有vector, deque, list vector:将元素置于dynamic array中管理,允许原创 2016-10-21 10:18:09 · 293 阅读 · 0 评论 -
vector的内存管理
vector和string中有关容器大小管理的操作:c.capacity();//不重新分配内存空间的话,c可以保存多少元素c.reserve(n);//分配至少能容纳n个元素的内存空间c.shrink_to_fit();//将capacity()减小为与size()相同大小,不保证一定退回内存空间 c.resize();//调整c的大小为n个元素。若n<c.size(),则原创 2017-04-19 17:13:25 · 702 阅读 · 0 评论 -
STL 中list的常用接口
#include #include #include using namespace std;int main(){ list ilist; cout << "size= " << ilist.size() << endl; ilist.push_back(0); ilist.push_back(1); ilist.push_back(2); ilist.push_bac原创 2017-05-18 22:35:22 · 560 阅读 · 0 评论