智能指针容器及STL容器
2013-09-18 14:59
225 查看
指针元素的容器:容器以指针为元素,存放的是一些内存地址,而不是真正的数据,这种容器只负责指针元素本身的内存动态分配和释放,而不会负责指针元素指向对象的内存管理任务。
作为STL容器元素需要满足的条件:
(1)可默认构造的,即具有public的default constructor,不论用户显式定义的还是编译器默认的(不是所有容器都需要的);
(2)可拷贝构造(Copy Constructible)和拷贝赋值(Copy Assignable)的,即具有public的copy constructor和copy assignment operator,不论是编译器默认的,还是用户显式定义的(即元素必须是可拷贝的,但实际上拷贝赋值的要求不是强制的,和条件1类似);
(3)具有public的destructor,编译器默认的用户显式定义的都可以;
(4)对于关联式容器,要求其元素必须是可比较的。
作为STL容器元素需要满足的条件:
(1)可默认构造的,即具有public的default constructor,不论用户显式定义的还是编译器默认的(不是所有容器都需要的);
(2)可拷贝构造(Copy Constructible)和拷贝赋值(Copy Assignable)的,即具有public的copy constructor和copy assignment operator,不论是编译器默认的,还是用户显式定义的(即元素必须是可拷贝的,但实际上拷贝赋值的要求不是强制的,和条件1类似);
(3)具有public的destructor,编译器默认的用户显式定义的都可以;
(4)对于关联式容器,要求其元素必须是可比较的。
相关文章推荐
- auto_ptr智能指针不能作为STL标准容器的元素
- 为什么auto_ptr智能指针不能作为STL标准容器的元素
- 智能指针与STL容器
- 一个可以放入STL容器的简洁、高效、非计数的智能指针实现
- 为什么auto_ptr智能指针不能作为STL标准容器的元素
- STL中的容器map:不要用指针做键值
- C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).
- 容器vector的resize操作 & 智能指针shared_ptr的reset操作
- ATL中对智能指针在STL中的错误处理进行了一层CAdapt模板类封装
- stl中使用智能指针的问题
- C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).
- 【STL学习】智能指针之weak_ptr
- STL 容器和ATL智能包裹类的冲突
- boost库的智能指针shared_ptr结合容器vector的使用
- STL容器中 存放指针与对象区别 遍历删除与释放操作
- STL容器插入类时的构造函数调用以及插入指针时的情况
- C++ (STL BOOST) 智能指针的一些解析
- STL中vector容器中元素为自定义类型指针时的内存泄漏问题
- [C++][STL]智能指针:auto_ptr
- 智能指针(一):STL auto_ptr实现原理