pairs
- 两个值视为一个单元
- (key/value)
- pairs被定义为struct
std::pair<int ,float> p;
make_pair
template<class T1,clas T2>
pair<T1,T2> make_pair(const T1& x,const T2& y)
{return pair<T1,T2>(x,y);}
-----
std::make_pair(42,'@')
auto_ptr
- 智能指针,防止“被异常抛出时发生资源泄露”
模式: 获取资源—执行动作—释放获取的资源
auto_ptr是所指对象的拥有者
std::auto_ptr<ClassA> ptr1(new ClassA);
std::auto_ptr<ClassA> ptr2=new ClassA; //错误
auto_ptr的拥有权
//copy构造函数和 assignment操作符
std::auto_ptr<ClassA> ptr1(new ClassA);
//copy the auto_ptr
std::auto_ptr<ClassA> ptr2(ptr1);
- ptr1拥有了new出来的对象—–拥有权将ptr1转交给ptr2—ptr2就拥有了它
- 对象在ptr2销毁时delete了
//赋值
std::auto_ptr<ClassA> ptr1(new ClassA);
//copy the auto_ptr
std::auto_ptr<ClassA> ptr2;
ptr2=ptr1
- 所有权归ptr2
//赋值
std::auto_ptr<ClassA> ptr1(new ClassA);
//copy the auto_ptr
std::auto_ptr<ClassA> ptr2(new ClassA);
ptr2=ptr1
- 所有权归ptr2,原理ptr2的被替换
auto_ptr作为成员之一
数值极限
辅助函数
- max
- swap